业力junit报告崩溃

时间:2014-07-23 19:16:43

标签: javascript node.js testing karma-runner

我正在尝试在项目上运行业力,并且在运行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

1 个答案:

答案 0 :(得分:0)

事实证明这个问题是由junit-reporter模块的旧版本引起的 - 我没有使用新karma版本的版本 - 其他没有遇到问题的开发人员是也有较长的业力。

这里有项目记录: https://github.com/karma-runner/karma-junit-reporter/issues/11