问题描述
我在我的 symfony 项目中使用 Panther Tests Case 和 PHPUnit 进行功能测试。 当我在我的电脑 (PHP bin/PHPunit) 上运行我的测试时,一切正常。当我连接到服务器并运行测试时,一切正常。Chrome 驱动程序已正确安装在服务器上,我可以使用命令行运行它。 但是,当我推动 gitlab 并且我的 CI 启动时,我总是遇到相同的错误: 这是gitlab界面的截图
我的脚本从使用 SSH 连接到我的服务器开始。所以行为应该与我使用 Putty 和 SSH 连接到我的服务器时相同... 我在 .gitlab.ci 脚本上使用的命令是“PHP bin/PHPunit”。和我在本地用的一样。
我发现了一些关于这个问题的帖子,但都在 Selenium 上,而没有针对 panther ......请帮忙! :)
解决方法
不知道问题是否仍然存在,但我从昨天开始就一直在为同样的问题苦苦挣扎,我最终通过阅读文档来解决它;-) : https://github.com/symfony/panther#chrome-specific-environment-variables
由于 Chrome 的沙箱化,需要指定特定的 ENV 变量以确保在容器中正确运行。
我在测试步骤中使用此更新了我的 .gitlacb-ci.yml:
before_script:
- ... {HERE : ensure your chromedriver is existing in the container}
- export PANTHER_NO_SANDBOX=1
所以...学到/记住的教训:5分钟的文档阅读值得2天的谷歌搜索...;-)