无法再使用 --reporters 选项启动 ng 测试
Cannot start ng test with --reporters option anymore
我已经在 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
不工作。它给出了上面报告的错误。
相关的开发依赖:
"@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",
你可以尝试通过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"
in devDependencies
)。
我认为是因为v6.2.7
中没有提供reporters
键(我在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
我已经在 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
不工作。它给出了上面报告的错误。
相关的开发依赖:
"@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",
你可以尝试通过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"
in devDependencies
)。
我认为是因为v6.2.7
中没有提供reporters
键(我在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