gpt4 book ai didi

javascript - Karma Chrome Headless 无法在 Jenkins 上运行

转载 作者:IT老高 更新时间:2023-10-28 12:42:03 24 4
gpt4 key购买 nike

当我在我的 Mac 上使用 Docker 本地运行以下设置时,一切正常。

但相同的设置不适用于在 Ubuntu 16.04 上运行的 Jenkins

ChromiumHeadless 在 60000 毫秒内没有捕获,正在杀死。

以下错误日志来自 Jenkins 控制台:

25 05 2018 06:35:09.076:INFO [karma]: Karma v2.0.2 server started at http://0.0.0.0:9222/
25 05 2018 06:35:09.079:INFO [launcher]: Launching browser Chromium_no_sandbox with unlimited concurrency
25 05 2018 06:35:09.090:INFO [launcher]: Starting browser ChromiumHeadless
25 05 2018 06:36:09.128:WARN [launcher]: ChromiumHeadless have not captured in 60000 ms, killing.
25 05 2018 06:36:09.139:INFO [launcher]: Trying to start ChromiumHeadless again (1/2).
25 05 2018 06:37:09.140:WARN [launcher]: ChromiumHeadless have not captured in 60000 ms, killing.
25 05 2018 06:37:09.147:INFO [launcher]: Trying to start ChromiumHeadless again (2/2).

Package.json ..."testProd": "./node_modules/karma/bin/karma start karma.conf-prod.js --single-run",

Dockerfile

FROM zenika/alpine-node:latest
LABEL name="product-web"

# Update apk repositories
RUN echo "http://dl-2.alpinelinux.org/alpine/edge/main" > /etc/apk/repositories
RUN echo "http://dl-2.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories
RUN echo "http://dl-2.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories

# Install chromium
RUN apk -U --no-cache \
--allow-untrusted add \
zlib-dev \
chromium \
xvfb \
wait4ports \
xorg-server \
dbus \
ttf-freefont \
mesa-dri-swrast \
grep \
udev \
&& apk del --purge --force linux-headers binutils-gold gnupg zlib-dev libc-utils \
&& rm -rf /var/lib/apt/lists/* \
/var/cache/apk/* \
/usr/share/man \
/tmp/* \
/usr/lib/node_modules/npm/man \
/usr/lib/node_modules/npm/doc \
/usr/lib/node_modules/npm/html \
/usr/lib/node_modules/npm/scripts

WORKDIR /home/dev/code
COPY . .

#RUN rm -rf node_modules && npm cache clear --force

ENV CHROME_BIN=/usr/bin/chromium-browser
ENV CHROME_PATH=/usr/lib/chromium/

RUN npm install
RUN npm run testProd && npm run buildProd

karma.conf-prod.js

const path = require('path');
module.exports = function(config) {
config.set({
basePath: '',
browsers: ['ChromeHeadlessNoSandbox'],
customLaunchers: {
ChromeHeadlessNoSandbox: {
base: 'ChromeHeadless',
flags: [
'--no-sandbox',
'--user-data-dir=/tmp/chrome-test-profile',
'--disable-web-security'
]
}
},
frameworks: ['mocha', 'chai'],
captureConsole: true,
files: [
'node_modules/babel-polyfill/dist/polyfill.js',
'test/root.js'
],
preprocessors: {
'src/index.js': ['webpack', 'sourcemap'],
'test/root.js': ['webpack']
},
webpack: {
devtool: 'inline-source-map',
module: {
loaders: [
{
test: /\.js$/,
loader: 'babel-loader',
exclude: path.resolve(__dirname, 'node_modules'),
query: {
plugins: ['transform-decorators-legacy', 'transform-regenerator'],
presets: ['env', 'stage-1', 'react']
}
},
{
test: /\.json$/,
loader: 'json-loader',
},
]
},
externals: {
'react/addons': true,
'react/lib/ExecutionEnvironment': true,
'react/lib/ReactContext': true
}
},
webpackServer: {
noInfo: true
},
reporters: ['spec'],
port: 9222,
logLevel: config.LOG_INFO
});
};

我什至尝试使用 logLevel: config.LOG_DEBUG 但没有显示任何缺失或异常。

最佳答案

基于 issue Karma 1.6 breaks Headless support for Chrome创建于 github ,它与较慢的机器有关并且发生,因为在 Chrome 解析和执行测试包之前花费了 > 60 秒,因此启动了测试运行并将其传回给 Karma 服务器。可能需要很长时间的原因各不相同。

有两种处理超时的方法:

调查您的测试包加载超过 60 秒的原因并确保加载速度更快。

  1. 增加browserNoActivityTimeout更高的值(value),所以测试捆绑有足够的时间加载。
  2. 这种特殊的超时外观似乎不是 karma 报应问题,而是项目中的问题或配置错误。

基于 Derek's评论

有一个连接过早断开。

他发现在/static/karma.js 中,当创建套接字时,有一个超时值被硬编码为 2 秒(见下文)。他只是添加了另一个 0 以使其达到 20 秒,并且连接保持打开的时间足够长,以使服务器能够响应初始请求。 karma/客户端/main.js

e79463b 中的第 14 到 20 行

var socket = io(location.host, { 
reconnectionDelay: 500,
reconnectionDelayMax: Infinity,
timeout: 2000,
path: KARMA_PROXY_PATH + KARMA_URL_ROOT.substr(1) + 'socket.io',
'sync disconnect on unload': true
})

他面临的下一个问题是,Karma 认为没有任何事件,即使套接字上有来回的流量。为了解决这个问题,他刚刚在 Karma 配置中添加了 browserNoActivityTimeout: 60000。

您需要更改的超时配置比配置文件中的更多。

关于javascript - Karma Chrome Headless 无法在 Jenkins 上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50526682/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com