机器: Ubuntu Linux 14.04 LTS
专家:3.0.5
当我从 Eclipse 执行我的 TestNG 测试套件文件时,它会打开 Chrome 浏览器并正确执行测试。但是当我在终端上执行以下命令时,
$ sudo mvn clean install -DsuiteXmlFile=testng.xml
由于我的机器已经存在一些访问问题,因此我必须 将
sudo
与命令一起使用。
Chrome浏览器只是无法打开,maven日志只是无限地继续打印以下日志,
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running TestSuite
Starting webdriver on OS: Linux
Starting ChromeDriver 2.37.543619 (a237acd3116cac3b3f0da42a000502ce3fafcb23) on port 14536
Only local connections are allowed.
Starting webdriver on OS: Linux
Starting ChromeDriver 2.37.543619 (a237acd3116cac3b3f0da42a000502ce3fafcb23) on port 6694
Only local connections are allowed.
Starting webdriver on OS: Linux
Starting ChromeDriver 2.37.543619 (a237acd3116cac3b3f0da42a000502ce3fafcb23) on port 4991
Only local connections are allowed.
Starting webdriver on OS: Linux
Starting ChromeDriver 2.37.543619 (a237acd3116cac3b3f0da42a000502ce3fafcb23) on port 19892
Only local connections are allowed.
Starting webdriver on OS: Linux
Starting ChromeDriver 2.37.543619 (a237acd3116cac3b3f0da42a000502ce3fafcb23) on port 21613
Only local connections are allowed.
但是,这在 Windows 10 上运行良好。
有没有人对此有解决方案,因为我找不到任何解决方案。
按下面给出的方式设置系统显示值,然后再次尝试运行测试。
You can write at the end of your .bashrc file:
export DISPLAY=:0.0
我之前在 Maven 命令在 Jenkins 上运行时遇到过这个问题,我在 Ubuntu 上安装了 xvfb,然后完美地工作了。
在 Ubuntu 上安装 xvfb:
sudo apt-get update
sudo apt-get install xvfb
然后你需要添加这些配置才能很好地启动它:
Xvfb :1 -screen 0 800x600x16
DISPLAY=:1.0
你可以把它安装为Jenkins插件: 关注这个
终于通过对我的测试进行 dockerization 解决了我的问题。
我使用类似ENV
从 Dockerfile 设置DISPLAY
,
ENV DISPLAY :99
然后我使用ENTRYPOINT
从 Docker 容器执行我的run.sh
文件来启动 Xvfb 显示:
Xvfb :99 -ac &
并在同一个run.sh
文件中执行了上述行之后的测试:
mvn clean install -DsuiteXmlFile=testng.xml
运行的输出为:
[INFO] -------------------------------------------------------
[INFO] T E S T S
[INFO] -------------------------------------------------------
[INFO] Running TestSuite
Starting ChromeDriver 2.38.552522 (437e6fbedfa8762dec75e2c5b3ddb86763dc9dcb) on port 13506
Only local connections are allowed.
May 31, 2018 5:44:12 AM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: OSS
31/05/2018 05:44:16 copy_tiles: allocating first_line at size 41
[INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 17.688 s - in TestSuite
[INFO]
[INFO] Results:
[INFO]
[INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0
编辑:
可以在此处找到 Docker 映像。