我已经在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",
答案 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
呼叫