在docker中运行Nightwatch测试 - Selenium服务器无法启动

时间:2016-12-15 12:14:12

标签: selenium jenkins docker nightwatch.js

我试图将我的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
  }
},

0 个答案:

没有答案