在Karma测试期间获取文件信息

时间:2017-09-17 06:49:36

标签: karma-jasmine angular-cli

我有大量文件通过Karma和Jasmine运行以进行测试†。在进程的中间,我得到一个未被捕获的错误,它停止了该项目。这意味着我无法轻易确定哪个文件导致致命错误。有没有办法在测试时打印出文件的名称,或者获取我可以分析的类似信息?

†更具体地说,我正在使用Angular CLI运行一个Angular项目,该项目使用了Karma和Jasmine。

编辑: 我被问到截图和代码,但没有太多要显示。当我经营业力时,我得到了这个回应:

19 09 2017 00:04:18.279:INFO [karma]: Karma v1.7.0 server started at http://0.0.0.0:9876/
19 09 2017 00:04:18.281:INFO [launcher]: Launching browser Chrome with unlimited concurrency
19 09 2017 00:04:18.285:INFO [launcher]: Starting browser Chrome
19 09 2017 00:04:42.723:INFO [Chrome 61.0.3163 (Mac OS X 10.12.6)]: Connected on socket Ml1MJK4zgJuXwLyxAAAA with id 34080921
................................................................................
................................................................................
................................................................................
.....................................................Chrome 61.0.3163 (Mac OS X 10.12.6) ERROR
  Uncaught Error: No component factory found for FooComponent. Did you add it to @NgModule.entryComponents?
  at http://localhost:9876/_karma_webpack_/polyfills.bundle.js:8310

Chrome 61.0.3163 (Mac OS X 10.12.6) ERROR
  Uncaught Error: No component factory found for FooComponent. Did you add it to @NgModule.entryComponents?
  at http://localhost:9876/_karma_webpack_/polyfills.bundle.js:8310
Chrome 61.0.3163 (Mac OS X 10.12.6): Executed 293 of 739 (skipped 44) ERROR (10.515 secs / 1.461 secs)

我正在运行739个单元测试,并且该过程在293之后停止。我找不到导致FooComponent错误的文件(这是一些微妙的,无法通过关键字搜索来识别)。这就是为什么我需要知道导致错误的文件名或测试名称或某事

1 个答案:

答案 0 :(得分:1)

您可以使用自定义Karma记者查看有关哪些测试失败等的更多详细信息。

一个选项是karma-spec-reporter

安装和使用很简单(从github README复制):

npm install karma-spec-reporter --save-dev

然后在karma.conf.js中向记者添加'spec',例如

reporters: ['spec']

Karma记者还有其他选择。

Karma-mocha-reporter是一种选择。

如果你有点笑,你还可以看一下karma-nyan-reporter以获得一点点的nyan-cat救济。也许令人惊讶的是,它似乎也提供了一些有用的错误记录。