我正在使用自动运行构建和测试的CIS。测试在Windows上运行良好,但是当在rhel中运行时,它会抛出X11 Display变量未设置。
我确定安装了X11,我可以使用Xmanager取回xclock。目的不是将显示器推送到客户端,而是使用Xmanager来验证是否安装了X11。
如果未导出显示,则使用图形的测试会失败但是当我set export DISPLAY=0.0
时,它会抛出java.lang.NoClassDefFoundError: sun/awt/X11GraphicsEnvironment
This source表示cNF例外具有误导性。
以下是该内容的废话:
不幸的是,此错误消息有些误导。此消息实际上并不反映类加载问题。通过在适当的配置文件中设置DISPLAY环境变量,可以避免错误。
这意味着显示器未正确导出,但测试未报告缺少X11显示。我缺少什么?
建议表示赞赏!
答案 0 :(得分:2)
导出DISPLAY = 0.0
这是语法错误。你必须使用:
export DISPLAY=:0.0
(请注意冒号。)
一旦这是正确的,您将需要确保用户运行测试,因为它具有对X服务器的权限。请参阅xauth
或进行不安全但无关紧要的测试xhost +
。
答案 1 :(得分:1)
你有X显示器在运行吗?
获取自动化测试显示的一种常用方法是使用Xvfb“假”显示服务器。运行Xvfb,然后设置指向它的DISPLAY。
答案 2 :(得分:0)
我不确定你的描述是否要在没有X11的情况下运行测试。在这种情况下,您可以使用headless mode告诉AWT您不想要图形输出。如果它们不是交互式的,那么应该允许你的测试运行。
我看不出你怎么能运行像xclock这样的东西,而不是Java。是否缺少任何中间步骤?你是否应该进入应该运行测试的主机?