部署到生产以进行角度测试覆盖时如何在 jenkins 中设置 CHROME_BIN
Posted
技术标签:
【中文标题】部署到生产以进行角度测试覆盖时如何在 jenkins 中设置 CHROME_BIN【英文标题】:How to set CHROME_BIN in jenkins when deploying to production for angular test coverage 【发布时间】:2017-09-09 21:17:11 【问题描述】:我有一个部署到 jenkins 服务器的 maven 项目,我想在那里为我的 AngularJS 代码运行代码覆盖率报告。我在本地机器上安装了 jenkins 服务,并在构建项目时在那里运行测试。
测试顺利通过,但是当我尝试在我的生产服务器上构建时,尝试运行我的测试时构建失败,并在此处抛出此错误(我只是复制了错误)
[INFO] --- frontend-maven-plugin:1.0:grunt (grunt-karma) @ forecast-guardian-4 ---
[INFO] Running 'grunt ' in /var/lib/jenkins/workspace/TaskName
[INFO] Running "karma:unit" (karma) task
ERROR [launcher]: [39mNo binary for Chrome browser on your platform.
[INFO] Please, set "CHROME_BIN" env variable.
[INFO]
[INFO]
[INFO]
[INFO] [33mWarning: Task "karma:unit" failed. Use --force to continue.[39m
[INFO]
[INFO] [31mAborted due to warnings.[39m
[INFO]
我对此的研究表明,如果您在本地计算机上,如何设置该变量,顺便说一句,我不必这样做。我想知道是否有人可以帮我配置它。
如何设置此变量以生成类似于 find here 在本地计算机上设置它的内容?
更多信息:正如该错误所示,我的项目使用grunt
运行测试。
谢谢。
【问题讨论】:
【参考方案1】:docker run 命令通过 -env-file
标志接受 env 文件。
因此,您可以使用以下内容添加新的 env 文件
CHROME_BIN=/usr/bin/google-chrome
并将此文件传递给 docker run 命令
docker run --env-file ./env.list -t -d $BUILD_NAME
请参考here 获取官方文档
这样,我们不只是为了设置 env 变量而操纵。
【讨论】:
【参考方案2】:您可以使用 EnvInject plugin 或将 export CHROME_BIN=/your/path/here
放入 .bash_profile 并在工作开始时运行 source ~/.bash_profile
。
【讨论】:
我已经安装了。但我不明白如何提供通往 chrome bin 的路径。我已经安装了ChromeDirver 认为这会解决它,但没有。在本地机器上你可以使用CHROME_BIN=/usr/local/bin/my-chrome-build
之类的路径,但我不知道如何在jenkins服务器上重现它。
this document 中有一个部分称为At Job Level
> Inject variables after a SCM checkout
。只需将CHROME_BIN=/usr/local/bin/my-chrome-build
放入Properties Content
即可。
我试过了,但使用了各种版本的路径,但没有运气。我想我可能错过了什么,但我不知道是什么。我正在继续测试设置为 CHROME_BIN 变量的各种路径,看看我是否掌握了它并继续前进。
那个位置真的有东西吗?你是在别的地方安装的吗?此外,您可以在您的工作中添加一个与CHROME_BIN
相呼应的步骤,以确认它正在被设置。如果它被设置,你的路径可能是错误的。
我相信这是你的问题。 ChromeDriver 是用于 Selenium 测试的 Web 驱动程序。根据我的阅读,您需要在用于 Jenkins 服务器的 Linux 机器上安装 Chrome 浏览器。来自 Karma GitHub 存储库的第一行:A simple tool that allows you to execute javascript code in multiple real browsers.
。这意味着您需要在系统上安装浏览器,就像您需要在本地 Windows 系统上安装浏览器一样。以上是关于部署到生产以进行角度测试覆盖时如何在 jenkins 中设置 CHROME_BIN的主要内容,如果未能解决你的问题,请参考以下文章
如何仅使用主 git 分支在 Jenkins 中使我的项目自动从开发部署到登台并手动部署到生产
Jenkins使用FTP进行一键部署及回滚(Windows)