3

每次我重新运行 Karma 时,它都会打开一个新的 Chrome 窗口,尽管屏幕上已经有一个并且其中的 URL 相同。

如何让 Karma runner 重用浏览器窗口以及是否打开了适当的选项卡 - 重用此选项卡?

4

3 回答 3

3

在配置中,设置

browsers = [];
于 2013-04-26T19:15:19.887 回答
0

我来到这里,同时在不同的背景下寻找相同的问题。

在运行测试时,有些情况下 Karma 会立即打开 2 个选项卡,因此所有测试都运行两次。通常这不应该是一个问题,但在我们的例子中,这会导致一些意外的延迟和零星的故障。

事实上,为了防止这种不需要的行为,应该在 Karma 配置中添加以下内容:

restartOnFileChange: true

根据 Karma 的规范,这迫使跑步者停止当前执行并开始新的执行,从而有效地重用相同的当前选项卡。

默认行为 ,restartOnFileChange: false导致在当前执行继续运行时开始新的执行,从而有效地产生 2 个同时运行的选项卡。

于 2020-09-25T10:03:49.013 回答
0

在 config.set({...}) 块中添加以下行:

    restartOnFileChange: false,

这是一个保证。

使用该行,每当您保存文件/文件时,浏览器都会自动REFRESH本身而不是重新打开.

以防万一,下面是我完整的 karma.conf.js 文件,效率很高:

// Karma configuration file, see link for more information
// https://karma-runner.github.io/1.0/config/configuration-file.html

module.exports = function (config) {
    config.set({
        basePath: '',
        frameworks: ['jasmine', '@angular-devkit/build-angular'],
        plugins: [
            require('karma-jasmine'),
            require('karma-chrome-launcher'),
            require('karma-jasmine-html-reporter'),
            require('karma-coverage-istanbul-reporter'),
            require('@angular-devkit/build-angular/plugins/karma')
        ],
        client: {
          jasmine: {
            random: false
          },
          clearContext: false // leave Jasmine Spec Runner output visible in browser
        },
        coverageIstanbulReporter: {
            dir: require('path').join(__dirname, 'coverage'),
            reports: ['html', 'lcovonly', 'text-summary'],
            fixWebpackSourcePaths: true
        },
        reporters: ['progress', 'kjhtml'],
        port: 9876,
        colors: true,
        logLevel: config.LOG_INFO,
        autoWatch: true,
        browsers: ['Chrome'],
        singleRun: false,
        restartOnFileChange: false,
    });
};

在块中,我自己添加了以下内容:

      jasmine: {
        random: false
      },

这使您的“it”块按照与您的规范文件中相同的顺序显示;

      restartOnFileChange: false,

谁的功能是你想要的,我已经在上面提到过。

您可以在项目的 src/coverage/index.html 中打开代码覆盖率文件。

注意:有时 chrome 在您保存文件后不会自动刷新。您只需手动刷新它,整个测试就会重新开始。很简单。

于 2020-09-11T14:38:45.337 回答