我在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.


我不确定我在哪里出问题了,我不知道按照文档说明设置自己的测试运行程序是否有意义,这就是为什么我不使用testcafe docker容器的原因。
这是我的詹金文件...

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'
    }
}


}

最佳答案

Nvm,我应该使用--no-sandbox chrome标志,它在testcafe文档中,但是很难找到并且没有完全解释。对于我的实例,我创建了自己的标志--noSandbox,如果它包含“ chrome”或“ chromium”,则在测试运行程序代码中将--no-sandbox标志添加到传递给.browsers()函数的参数中

关于google-chrome - Jenkins中的TestCafe无法建立浏览器连接,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51862602/

10-14 14:54