首页 > 解决方案 > 如何在 Jenkins 上为 Angular JUnit 测试设置 Headless Chrome?

问题描述

我想在 Jenkins 上用 Headless Chrome 替换 PhantomJs 无头浏览器,以便运行 Angular Junit 测试,但问题是我无法访问 Linux 从站,所以我无法下载 chrome 二进制文件和驱动程序。

问题:这就是我在 Jenkins 上运行测试时收到 CHROME_BIN 缺少环境变量错误的原因。

可能的解决方案0:安装二进制和驱动程序,但我不知道在这种情况下,还有什么需要做的吗?以下命令取自本教程:https ://www.youtube.com/watch?v=d22Jcw5z-3I

Install Chrome Driver:
sudo wget https://chromedriver.storage.googleap...
sudo unzip chromedriver_linux64.zip
sudo mv chromedriver /usr/bin/chromedriver
chromedriver –version

Install Chrome Binary:
sudo curl https://intoli.com/install-google-chr... | bash
sudo mv /usr/bin/google-chrome-stable /usr/bin/google-chrome
google-chrome –version

可能的解决方案 1:我认为 chromedriver 插件是一种解决方案,但问题是我无法访问 Jenkins 上的插件管理器。

可能的解决方案 2:之后我尝试使用 puppeteer,在本地安装为 dev 依赖项,跳过 chromium 下载,因为当它尝试访问下载链接https://storage.googleapis.com/chromium-browser-snapshots时收到 403 /Win_x64/869685/chrome-win.zip,我也在 karma.conf.ts 中添加了它,例如:

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

但是当我在 Jenkins 上运行测试时,我收到连接超时错误。

在这种受限情况下,哪一种可能的解决方案?

我需要找出执行此操作的主要步骤,以便联系支持团队配置 Jenkins,并告诉他们需要完成的最小步骤是什么。然而,即使是支持团队的访问也受到限制,因此情况相当复杂。

这就是为什么我需要找出最简单的解决方案。先感谢您!

标签: angularjenkinsjunitcontinuous-integrationheadless

解决方案


推荐阅读