无法再使用--reporters选项开始ng测试

时间:2018-12-03 23:33:10

标签: angular karma-jasmine karma-runner

我已经在Angular 5应用程序上工作了一段时间,通常使用以下命令开始测试:

ng test --reporters dots

这按预期工作。我最近开始了一个新的Angular 6项目,并认为可以使用相同的命令来运行我的业力测试,但是每当尝试指定--reporters时,都会出现以下错误:

Data path ".reporters" should be array.

这个错误对我来说并没有多大意义,确切地说它在哪里需要此数组。我在karma.conf.js中确实有一个reporters:数组,但这与我在Angular 5项目中获得的数组相同。

作为记录,ng test可以正常工作,但是我更喜欢将点输出用于本地测试。我还应指定我尝试从命令行运行的任何报告程序也都显示此确切行为。我也无法运行我想要的报道记者。

这是我的karma.conf.js。相关记者部分:

reporters: ['spec', 'kjhtml'],

我也尝试在其中添加'dots',但没有任何效果。

我的package.json在脚本中有以下两行:

"test": "ng test --code-coverage",
"watch": "ng test --reporters dots",

npm run test可以正常工作,但是npm run watch不能正常工作。它给出了上面报告的错误。

相关的devDependencies:

"@angular-devkit/build-angular": "~0.10.7",
"@angular/cli": "6.2.7",
"karma": "^1.7.1",
"karma-chrome-launcher": "^2.2.0",
"karma-cli": "^1.0.1",
"karma-coverage-istanbul-reporter": "^2.0.4",
"karma-jasmine": "^1.1.2",
"karma-jasmine-html-reporter": "^0.2.2",
"karma-mocha-reporter": "^2.2.1",
"karma-remap-istanbul": "^0.2.1",
"karma-spec-reporter": "0.0.32",

1 个答案:

答案 0 :(得分:6)

您可以尝试通过growl报告程序添加点。

npm install karma-growl-reporter --save-dev

karma.conf.js中设置配置

config.set({
    plugins: [
         require('karma-growl-reporter'),
         ...
    ],
    ...
    reporters: ['spec', 'kjhtml', 'growl'],
 });

更新

如果从Angular / CLI(v 6.2.7)安装karma,则需要将其更新到v7.0.2("@angular/cli": "~7.0.2"中的devDependencies)。

我认为是因为没有在reporters中提供v6.2.7键(我在schema.json中找不到reporters,但是有v7.0.2

更新
this问题来看,我们可以看到v6.x.x是删除标志--reporter。这意味着我们无法从控制台进行报告(ng test --reporter不起作用)。

默认情况下,当我们创建和添加报告者另一个karma2.conf.js时,会有一个变体:

module.exports = function (config) {
  config.set({

    plugins: [
     ....
         require('karma-growl-reporter'),
     ....
    ]
    ...
    porters: ['dots'],

并从控制台ng test --karma-config PATH_TO_ANOTHER_KONF_FILE.js呼叫