无法再使用--reporters选项启动测试

Mor*_*red 9 karma-runner karma-jasmine angular

我一直在研究Angular 5应用程序一段时间,通常使用以下命令启动我的测试:

ng test --reporters dots
Run Code Online (Sandbox Code Playgroud)

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

Data path ".reporters" should be array.
Run Code Online (Sandbox Code Playgroud)

这个错误对我来说并没有多大意义,而且它究竟需要这个数组.我reporters:在karma.conf.js中有一个数组,但它和我在Angular 5项目中得到的数组相同.

为了记录,ng test工作得很好,但我更喜欢本地测试的点输出.我还应该指定我尝试从命令行运行的任何报告者也显示这种确切的行为.我无法管理我想要的报道记者.

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

reporters: ['spec', 'kjhtml'],
Run Code Online (Sandbox Code Playgroud)

我也试过添加'dots'它,没有任何效果.

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

"test": "ng test --code-coverage",
"watch": "ng test --reporters dots",
Run Code Online (Sandbox Code Playgroud)

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",
Run Code Online (Sandbox Code Playgroud)

小智 6

您可以尝试通过咆哮记者添加点.

npm install karma-growl-reporter --save-dev
Run Code Online (Sandbox Code Playgroud)

设置配置 karma.conf.js

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

UPDATE

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

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

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

当我们创建并添加记者另一个karma2.conf.js时,有一个变体,如:

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

    plugins: [
     ....
         require('karma-growl-reporter'),
     ....
    ]
    ...
    porters: ['dots'],
Run Code Online (Sandbox Code Playgroud)

并从控制台调用 ng test --karma-config PATH_TO_ANOTHER_KONF_FILE.js