Tar*_*ang 5 jasmine karma-runner karma-jasmine angular
在执行ng test之后,我的测试跑步者开始执行所有测试,但之后就一片空白。参见下图。
我的业力配置:
module.exports = function (config) {
config.set({
basePath: '',
frameworks: ['jasmine', '@angular/cli'],
plugins: [
require('karma-jasmine'),
require('karma-chrome-launcher'),
require('karma-jasmine-html-reporter'),
require('karma-coverage-istanbul-reporter'),
require('@angular/cli/plugins/karma')
],
client:{
clearContext: false // leave Jasmine Spec Runner output visible in browser
},
files: [
{ pattern: './src/test.ts', watched: false }
],
preprocessors: {
'./src/test.ts': ['@angular/cli']
},
mime: {
'text/x-typescript': ['ts','tsx']
},
coverageIstanbulReporter: {
reports: [ 'html', 'lcovonly' ],
fixWebpackSourcePaths: true
},
angularCli: {
environment: 'dev'
},
reporters: config.angularCli && config.angularCli.codeCoverage
? ['progress', 'coverage-istanbul']
: ['progress', 'kjhtml'],
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: ['Chrome'],
singleRun: false
});
};
Run Code Online (Sandbox Code Playgroud)
我的Package.json devDeps:
"devDependencies": {
"@angular/cli": "1.0.3",
"@angular/compiler-cli": "^4.0.0",
"@types/jasmine": "2.5.38",
"@types/node": "~6.0.60",
"codelyzer": "~2.0.0",
"jasmine-core": "~2.5.2",
"jasmine-spec-reporter": "~3.2.0",
"karma": "~1.4.1",
"karma-chrome-launcher": "~2.1.1",
"karma-cli": "~1.0.1",
"karma-jasmine": "~1.1.0",
"karma-jasmine-html-reporter": "^0.2.2",
"karma-coverage-istanbul-reporter": "^0.2.0",
"protractor": "~5.1.0",
"ts-node": "~2.0.0",
"tslint": "~4.5.0",
"typescript": "~2.2.0"
Run Code Online (Sandbox Code Playgroud)
}
可能是版本问题吗?也许升级我的业力版本?这是通过cli安装的,我相信它可以更早地工作,但是不知何故它已经实现了。
罪魁祸首是Karma 配置中的client.clearContext选项
:
如果为 true,则 Karma 在运行测试完成后清除上下文窗口。如果为 false,则 Karma 在运行测试完成后不会清除上下文窗口。嵌入 Jasmine Spec Runner 模板时,将此设置为 false 很有用。
为避免黑屏,请禁用此选项,如下所示 (karma.conf.js):
module.exports = function (config) {
config.set({
/* ... */
client: {
clearContext: false
}
/* ... */
})
}
Run Code Online (Sandbox Code Playgroud)
这是因为 npm 版本依赖性:-
npm i --save-dev jasmine-core@latest
npm i --save karma-jasmine@latest
Run Code Online (Sandbox Code Playgroud)
安装这两个依赖项将解决您的问题。
完整的 Package.json [FYR]
{
"name": "karma-coverage-sample",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "karma start karma.conf.js"
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
"istanbul": "^0.4.5",
"jasmine-core": "^3.5.0",
"karma": "^1.3.0",
"karma-chrome-launcher": "^2.0.0",
"karma-coverage": "^1.1.1",
"karma-jasmine": "^2.0.1",
"karma-jasmine-html-reporter": "^1.5.1"
}
}
Run Code Online (Sandbox Code Playgroud)