我正在尝试在项目上运行业力,并且在运行junit报告时崩溃,尽管它在类似配置的机器中使用相同的项目。
尝试运行时
karma start '<path-to>/karma.conf.js' --reporters junit --single-run --junitReporter.outputFile karmaoutpu
我得到了这个追溯:
INFO [karma]: Karma v0.12.17 server started at http://localhost:9876/
INFO [launcher]: Starting browser PhantomJS
INFO [PhantomJS 1.9.2 (Linux)]: Connected on socket fAqoa8mrX6WgaHTam1Ut with id 5898608
ERROR [karma]: [TypeError: Cannot call method 'push' of undefined]
TypeError: Cannot call method 'push' of undefined
at [object Object].onBrowserStart (<project-path>/node_modules/karma/lib/reporters/base.js:14:20)
检查base.js
文件,我有这个片段:
this.onRunStart = function() {
this._browsers = [];
};
this.onBrowserStart = function(browser) {
this._browsers.push(browser); // <this._browsers is undefined here!>
};
如果我强制在onBrowserStart
内强制启动this._browsers数组,
我在其他地方遇到其他错误 - 但这告诉我onRunStart
没有被调用 -
所以我可能错过了一些初始化。可能是它失败了,就是这样
同一个项目,相同版本的Node包在Ubuntu系统中运行(我在Fedora 20上)
另一方面,dots
报告插件可以完美运行。
安装了业力和业力相关包的版本:
karma 0.12.17
├─┬ karma-chai@0.0.1
│ └── chai@1.6.1
├── karma-chrome-launcher@0.1.4
├─┬ karma-coffee-preprocessor@0.1.3
│ └─┬ coffee-script@1.7.1
│ └── mkdirp@0.3.5
├── karma-firefox-launcher@0.1.3
├── karma-html2js-preprocessor@0.1.0
├── karma-jasmine@0.1.5
├─┬ karma-junit-reporter@0.1.0
│ └── xmlbuilder@0.4.2
├── karma-mocha@0.1.6
├── karma-phantomjs-launcher@0.1.4
├── karma-requirejs@0.2.2
├── karma-script-launcher@0.1.0
...
├─┬ phantomjs@1.9.2-2
答案 0 :(得分:0)
事实证明这个问题是由junit-reporter模块的旧版本引起的 - 我没有使用新karma
版本的版本 - 其他没有遇到问题的开发人员是也有较长的业力。
这里有项目记录: https://github.com/karma-runner/karma-junit-reporter/issues/11