我使用Karma、Sinon和Mocha进行一些单元测试。它运转良好,一个月来,我在运行这些单元测试时遇到了一些问题。我在HeadlessChrome上出错了。实际上,它显示了这个错误:
HeadlessChrome 83.0.4103 (Windows 10.0.0) ERROR
Disconnected, because no message in 30000 ms.我有这样的业力配置:
module.exports = function (config) {
config.set({
// Others configs
...
port: 9876,
browsers: ['ChromeHeadlessNoSandbox'],
customLaunchers: {
ChromeHeadlessNoSandbox: {
base: 'ChromeHeadless',
flags: [
'--no-sandbox', // required to run without privileges in docker
'--user-data-dir=/tmp/chrome-test-profile',
'--disable-web-security'
]
}
},
captureTimeout: 10000,
plugins: [
'karma-mocha', 'karma-mocha-reporter', 'karma-junit-reporter', 'karma-chrome-launcher',
'karma-typescript', 'karma-html-reporter'
]
});
};我找到了两种解决方法:
browser.
module.exports = function (config) {
config.set({
// Others configs
...
port: 9876,
browsers: ['Chrome'],
flags: [
'--no-sandbox', // required to run without privileges in docker
'--user-data-dir=/tmp/chrome-test-profile',
'--disable-web-security'
],
captureTimeout: 10000,
plugins: [
'karma-mocha', 'karma-mocha-reporter', 'karma-junit-reporter', 'karma-chrome-launcher',
'karma-typescript', 'karma-html-reporter'
]
});
};我怎么能再次使用ChromeHeadless呢?的确,这很好,因为所有单元测试都是在后台运行的,而现在它打开浏览器,执行测试并关闭它。
发布于 2020-07-06 20:19:25
我们对我的工作也有同样的惊喜。我们的测试在6月底开始失败,这是一个新的Chrome 83稳定版本。
他们肯定弄坏了什么东西,你可以在这里跟进:https://bugs.chromium.org/p/chromium/issues/detail?id=1090988
编辑:
因此,要正确地回答,如果你能回到Chrome 83之前,就会暂时修复它。然而,我不知道我们这边的事情,我需要找到一个新的码头形象,这是不好的。
发布于 2020-07-10 17:00:52
我已经检查了问题在我的一端,我们可以通过使用puppeteer的铬箱来解决这个问题!
看看https://github.com/karma-runner/karma-chrome-launcher#headless-chromium-with-puppeteer怎么做的!
这样,我们就依赖于Chrome's Dev团队制造的更稳定的东西。
请注意,在执行npm install时,这将在每个人的计算机上安装一个新的Chrome二进制文件,但也会确保每个测试都针对相同的版本。
https://stackoverflow.com/questions/62510490
复制相似问题