无法在Jenkins管道的docker容器中运行茉莉花测试用例

问题描述 投票:0回答:1

我一直试图在基于jasmine构建的Docker容器中针对以Angular 7编写的UI代码运行node:10-alpine测试。我尝试运行铬和木偶安装程序,但铬无头铬似乎没有被捕获。我收到以下错误消息:

警告[发射器]:ChromeHeadless在210000毫秒内未捕获,导致死亡。

WARN [启动器]:ChromeHeadless在2000毫秒内未被杀死,发送了SIGKILL。警告[启动器]:ChromeHeadless并未在2000毫秒内被SIGKILL杀死,>继续。npm ERR!代码ELIFECYCLEnpm ERR! errno 1

我也在下面尝试过:

  • 增加captureTimeout和browserNoActivityTimeout
  • 如下添加了除'--no-sandbox'以外的其他标志
customLaunchers: 

{
      ChromeHeadlessNoSandbox:{
        base: "ChromeHeadless",
        flags: [
          "--no-sandbox",
          "--no-proxy-server",
          "--disable-web-security",
          "--disable-gpu",
          "--disable-dev-shm-usage",
          '--no-proxy-server',
          '--proxy-bypass-list=*',
          '--window-size=1920,1080',
          '--remote-debugging-port=9222'
        ]
      }
    }

我也添加了

process.env.CHROME_BIN = require('puppeteer')。executablePath();

在业力配置中

但是一点运气都没有。谁能为我提供最佳解决方案?预先感谢?

docker jenkins-pipeline google-chrome-headless
1个回答
0
投票

经过近一个星期的努力,我以某种方式找到了解决方法。通过在我的customLaunchers中进行最小配置,仅带有“ --no-sandbox”标志,而没有操纵p,我可以通过在Docker容器中正确设置以下环境变量来运行我的茉莉花测试用例:

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

下面是我在终端中运行以检查测试是否成功执行的命令:

docker run -e CHROME_BIN = / usr / bin / chromium-browser -e CHROME_PATH = / usr / lib / chromium / -v项目路径:/ usr / src / app -w / usr / src / app dockerImage sh -c“ apk addchrome && npm install && npm rebuild node-sass && npm run test:ci”

在我的jenkins文件中,我添加了以下几行以在Jenkins管道中运行测试用例:

withEnv([“ CHROME_BIN = / usr / bin / chromium-browser”,“ CHROME_PATH = / usr / lib / chromium /”]){sh'apk添加铬&& npm install && npm运行测试:ci && npm run build'}

© www.soinside.com 2019 - 2024. All rights reserved.