【问题标题】:ng test not working after upgrade to Karma 2.0.0升级到 Karma 2.0.0 后 ng 测试不起作用
【发布时间】:2018-02-01 12:06:53
【问题描述】:

昨天我将 Angular 从 v4.4 升级到 v5.2,将 Karma 从 v1.7.1 升级到 v2.0.0。由于这样做,我无法运行 ng test

我可以使用 karma start myconfigfile.js --single-run 运行测试并且它们都正确通过,但是当我尝试 ng test 时,浏览器会打开但在显示“业力 - 开始”后挂起。没有控制台输出。

我已经为浏览器尝试了 Chrome 和 ChromeHeadless,但已经没有想法了。任何帮助将不胜感激。

配置:

module.exports = function (config) {
    config.set({
        basePath: '',
        frameworks: ['jasmine', '@angular/cli'],
        plugins: [
            require('karma-jasmine'),
            require('karma-chrome-launcher'),
            require('karma-coverage-istanbul-reporter'),
            require('karma-jasmine-html-reporter'),
            require('karma-spec-reporter'),
            require('karma-junit-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', 'cobertura'],
            fixWebpackSourcePaths: true,
            'report-config': {
                cobertura: {
                    file: 'coverage.xml'
                }
            }
        },
        angularCli: {
            environment: 'dev'
        },
        reporters: ['spec', 'kjhtml', 'junit', 'coverage-istanbul'],
        junitReporter: {
            outputDir: '',
            outputFile: 'test-results.xml',
            useBrowserName: false
        },
        port: 9876,
        colors: true,
        logLevel: config.LOG_INFO,
        autoWatch: false,
        browsers: ['ChromeHeadless'],
        singleRun: true,
        browserNoActivityTimeout: 60000,
        browserDisconnectTolerance: 5
    });
};

【问题讨论】:

    标签: angular unit-testing testing karma-runner


    【解决方案1】:

    对于将来遇到此问题的任何人,这似乎是一个依赖问题。一个 npm install 解决了它。

    【讨论】:

    • 你安装了什么来修复它?
    • 我没有安装任何额外的东西。 'npm install' 只会安装 package.json 文件中的所有依赖项。
    【解决方案2】:

    我一直在尝试在 Windows 10 机器上使用 angular 5,karma 2.0.0, karma-chrome-launcher 2.2.0 并浪费了一整天来弄清楚为什么 chrome 没有捕获。

    您必须制作自定义 chrome 标头,尽管文档说只有
    browsers: ['ChromeHeadless'] 可以,但它不起作用。

    请像这样自定义标题:

        customLaunchers: {
            ChromeHeadlessCustom: {
                base: 'ChromeHeadless', // browser
                flags: [
                    '--no-sandbox', // needed to run test  case in windows also
                ],
            },
        }
    

    然后在浏览器标签中给出自定义标题引用:

    浏览器:['ChromeHeadlessCustom']

    在这之后它的工作就像魅力一样。 :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-21
      相关资源
      最近更新 更多