【发布时间】:2018-12-22 17:49:35
【问题描述】:
我已经在 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",
【问题讨论】:
-
@Mordred,您的 package.json 是否包含
"test": "ng test"这一行?还是有一些额外的参数?你能说明你的reporters变量是如何在karma.conf.json中定义的吗? -
@SaddamPojee 添加了更多信息。
-
@Mordred 有了上面的配置,我仍然可以成功运行
npm run watch命令。我会建议将您的angular和angular-cli更新到最新版本。
标签: angular karma-jasmine karma-runner