每次重新运行Karma时,它都会打开新的Chrome窗口,尽管屏幕上已有一个并且其中包含相同的网址。
如何让Karma runner重用浏览器窗口并打开相应的标签 - 重用此标签?
答案 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个同时运行的选项卡。