我试图将我的e2e测试集成到CI管道中。 我们使用Jenkins作为CI,我们构建了一个docker镜像,所有测试都是从docker运行的。
尝试运行e2e测试时,我收到错误消息:"连接被拒绝! selenium服务器是否已启动?"
在构建映像并安装所有npm包后,我在Jenkins文件中使用此命令:
run_in_stage('End2End test', {
image.inside("-u root") {
sh '''
npm run build:dev
http-server ./dist -p 3001 -s &
xvfb-run --server-args="-screen 0 1600x1200x24" npm run test:e2e:smoke
'''
}
})
在泊坞窗文件中,我使用xvfb设置了Chrome。
RUN \
wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - && \
echo "deb http://dl.google.com/linux/chrome/deb/ stable main" > /etc/apt/sources.list.d/google.list && \
apt-get update && \
apt-get install -y xvfb google-chrome-stable
这就是我在nightwatch.conf.js文件中设置selenium的方法:
const seleniumServer = require('selenium-server-standalone-jar');
const chromeDriver = require('chromedriver');
selenium: {
start_process: true,
server_path: seleniumServer.path,
host: '127.0.0.1',
port: 4444,
cli_args: {
'webdriver.chrome.driver': chromeDriver.path
}
},