【问题标题】:Karma Test running after executing tests screen goes blank执行测试后运行的 Karma 测试屏幕变为空白
【发布时间】:2018-01-12 13:04:11
【问题描述】:

在运行 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
  });
};

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

}

会不会是版本问题?也许升级我的 Karma 版本?这是通过 cli 安装的,我相信它之前工作过,但不知何故它已经到了这个。

【问题讨论】:

  • 据我记得,每次测试都完成并且浏览器空闲时,屏幕变黑,这是预期的行为
  • 如果所有测试都通过了,屏幕会变黑吗?我记得测试完成后能够看到所有结果。

标签: angular jasmine karma-runner karma-jasmine


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    这是因为npm版本依赖:-

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

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

    完整的 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"
      }
    }
    

    【讨论】:

      【解决方案3】:

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

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

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

      【讨论】:

        【解决方案4】:

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

        如果为 true,Karma 会在运行测试完成后清除上下文窗口。如果为 false,Karma 不会在运行测试完成后清除上下文窗口。嵌入 Jasmine Spec Runner 模板时,将此设置为 false 很有用。

        为避免空白屏幕,请禁用此选项,如下所示 (karma.conf.js):

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2020-08-26
          • 2022-12-29
          • 2014-12-20
          • 2013-08-24
          • 1970-01-01
          • 1970-01-01
          • 2019-02-17
          相关资源
          最近更新 更多