更改空手道 Chrome 可执行文件的默认路径-chrome
Changing default path for Chrome executable for karate-chrome
我正在使用空手道框架进行 API 测试。作为 CI 工作的一部分,我们在测试执行结束时发送了一封电子邮件,其中列出了测试结果的摘要。需要包含来自 'overview-feature.html' 文件的测试执行计数的屏幕截图。
我通过 TestRunner.java 文件做到了这一点 - 使用 Chrome.start() 启动了 Chrome,然后用它来截屏。在 Windows 上,这一切都在本地运行良好。
但是,在作为 Unix 机器的 CI 服务器上执行时,chrome 可执行文件不存在于默认位置 (usr/bin/google-chrome),因此本地主机的连接失败。
有什么方法可以更改 chrome 可执行文件的默认位置?
PS:如果这太琐碎而不能被问到,我们深表歉意。
是 Chrome 在 CI 上很难正确,请参考: - 请注意 CI 框通常是“无头的”,浏览器可能不均匀已安装。
我认为对您来说最好的办法是将 HTML 压缩并发送。但我真的认为你需要与一些 CI 专家合作,因为报告生成和电子邮件业务通常由 Jenkins 之类的东西完成。你所做的肯定不是正常的或最佳实践。
如果你真的想要,有一个空手道 Docker 容器可以给你一个合适的 Chrome 实例 (see docs) 但这对你需要的东西来说太过分了。
编辑:Chrome Java API 允许自定义可执行路径,这在文档中:https://github.com/intuit/karate/tree/master/karate-core#chrome-java-api
应该是这样的:
Chrome.start("/opt/blah/chrome");
我正在使用空手道框架进行 API 测试。作为 CI 工作的一部分,我们在测试执行结束时发送了一封电子邮件,其中列出了测试结果的摘要。需要包含来自 'overview-feature.html' 文件的测试执行计数的屏幕截图。
我通过 TestRunner.java 文件做到了这一点 - 使用 Chrome.start() 启动了 Chrome,然后用它来截屏。在 Windows 上,这一切都在本地运行良好。 但是,在作为 Unix 机器的 CI 服务器上执行时,chrome 可执行文件不存在于默认位置 (usr/bin/google-chrome),因此本地主机的连接失败。
有什么方法可以更改 chrome 可执行文件的默认位置?
PS:如果这太琐碎而不能被问到,我们深表歉意。
是 Chrome 在 CI 上很难正确,请参考:
我认为对您来说最好的办法是将 HTML 压缩并发送。但我真的认为你需要与一些 CI 专家合作,因为报告生成和电子邮件业务通常由 Jenkins 之类的东西完成。你所做的肯定不是正常的或最佳实践。
如果你真的想要,有一个空手道 Docker 容器可以给你一个合适的 Chrome 实例 (see docs) 但这对你需要的东西来说太过分了。
编辑:Chrome Java API 允许自定义可执行路径,这在文档中:https://github.com/intuit/karate/tree/master/karate-core#chrome-java-api
应该是这样的:
Chrome.start("/opt/blah/chrome");