业力测试 运行 执行测试后屏幕变为空白

Karma Test running after executing tests screen goes blank

在 运行 ng 测试之后,我的测试运行程序开始执行所有测试,但之后就变成空白了。见下图。

我的业力配置:

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
  });
};

我的 Package.json 开发部门:

"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"

}

会不会是版本问题?也许升级我的 Karma 版本?这是通过 cli 安装的,我相信它早些时候可以工作,但不知何故已经到了这个地步。

罪魁祸首是 client.clearContext 中的选项 the Karma configuration :

If true, Karma clears the context window upon the completion of running the tests. If false, Karma does not clear the context window upon the completion of running the tests. Setting this to false is useful when embedding a Jasmine Spec Runner Template.

为避免黑屏,禁用此选项,像这样(karma.conf.js):

module.exports = function (config) {
    config.set({
        /* ... */
        client: {
            clearContext: false
        }
        /* ... */
    })
}

我遇到了同样的问题。设置 clearContext 标志没有任何区别。

但对我来说,只有在使用 --code-coverage 参数时才会发生这种情况。我能够通过手动指定记者来修复它:

karma start --code-coverage=true --reporters=progress,coverage-istanbul,kjhtml

是因为npm版本依赖:-

 npm i --save-dev jasmine-core@latest
 npm i --save karma-jasmine@latest

安装这两个依赖项,这将解决您的问题。

完成 Package.json [财政年度]

{
  "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"
  }
}

发生此问题的另一种情况是,如果您列出了 PC 上未安装的浏览器。 示例:在您的业力配置文件中,您有: browsers: ["Chrome", "Firefox", "IE"], 但是在你的机器上你没有 firefox,你也会得到空闲测试。