为 angular 测试覆盖率部署到生产环境时如何在 jenkins 中设置 CHROME_BIN

How to set CHROME_BIN in jenkins when deploying to production for angular test coverage

我有一个部署到 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 到 运行 测试。

谢谢。

您可以使用 EnvInject plugin 或将 export CHROME_BIN=/your/path/here 放入作业的开头。bash_profile 和 运行 source ~/.bash_profile

docker 运行 命令通过 -env-file 标志接受 env 文件。

因此,您可以使用以下内容添加一个新的 env 文件

CHROME_BIN=/usr/bin/google-chrome

并将此文件传递给 docker 运行 命令

docker run --env-file ./env.list -t -d ${BUILD_NAME}

参考here官方文档

这样,我们就不会仅仅为了设置环境变量而操纵人偶。