Testacular / Karma:如何重用浏览器的标签?

时间:2013-04-26 18:43:13

标签: browser karma-runner

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

如何让Karma runner重用浏览器窗口并打开相应的标签 - 重用此标签?

3 个答案:

答案 0 :(得分:3)

在配置中,设置

browsers = [];

答案 1 :(得分:0)

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

    restartOnFileChange: false,

这是保证。

在该行中,每当您保存文件时,浏览器将自动刷新本身,而不是重新打开。

以防万一,以下是我完整的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不会自动刷新。您只需手动刷新它,整个测试就会重新开始。非常简单。

答案 2 :(得分:0)

我在这里寻找的问题是在稍微不同的上下文中找到的。

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

实际上,为了防止这种不良行为,应在Karma配置中添加以下内容:

restartOnFileChange: true

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

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