我在jenkins中设置了一个在代理中使用节点docker镜像的设置,在jenkinsfile中安装chrome和testcafe,这是通过在jenkinsfile中运行testcafe -b并将chrome视为可用浏览器来验证的 . 但是,每当我使用npm测试时,我会在我的本地机器中得到....
Error: Unable to establish one
or more of the specified browser connections. This can be caused by
network issues or remote device failure.
我不知道我在哪里出错,我不知道我是否按照文档说明 Build 了自己的测试运行器,这就是为什么我没有使用testcafe docker容器 . 这是我的jenkinsfile ...
pipeline {
agent {
docker { image 'node:8.11-jessie' }
}
stages {
stage('Node check'){
steps {
sh 'node -v'
}
}
stage('Install Chrome') {
steps {
sh 'apt-get update'
sh 'apt-get install -y gconf-service libasound2 libappindicator3-1 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils wget'
sh 'rm -rf /var/lib/apt/lists/*'
sh 'wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb'
sh 'dpkg -i google-chrome*.deb'
}
}
stage('Npm installs') {
steps {
sh 'npm install -g testcafe testcafe-reporter-xunit'
sh 'npm install'
}
}
stage('browsers') {
steps {
sh 'testcafe -b'
}
}
stage('Test test'){
steps{
sh 'npm test -- --env=gamma --browsers=chrome:headless'
}
}
}
post {
always {
junit '**/testcafe/res.xml'
}
}
}
1 回答
Nvm,我应该使用--no-sandbox chrome标志,它在testcafe文档中,但很难有趣而且没有完全解释 . 对于我的实例,我创建了自己的标志--noSandbox,在我的测试运行器代码中,如果它包含“chrome”或“chromium”,则将--no-sandbox标志添加到传递给.browsers()函数的参数中 .