获取" No X11 DISPLAY variable was set, but this program performed an operation which requires it."



我正在通过jenkins Integration对AWS进行测试,此测试需要上载文件,并且要打开文件上传文件(文件资源管理器)窗口,这触发了该文件错误


[java] [info] [2:53:49 pm] thread -1(testmethodrunner.java:188) - [Java]未设置X11显示变量,但是该程序执行了需要它的操作。 [java] [info] [2:53:49 PM] thread -1(testmethodrunner.java:189)-java.awt.headlessexception: [Java]未设置X11显示变量,但是该程序执行了需要它的操作。 [Java]在Sun.aw.head.headlesstoolkit.getsystemclipboard(Headlesstoolkit.java:307) [java]访问com.proquest.apps.etd.pqaf.layer.fileuploadwindow.uploadingfile(fileuploadwindow.java:50) [java]访问com.proquest.apps.etd.regression.tests.smoketest.smoketest(smoketest.java:100) [java]在sun.reflect.nativemethodaccessorimpl.invoke0(本机方法) [java]在sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:57) [java]在sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43) [java]在java.lang.reflect.method.invoke(method.java:606) [java] atorg.junit.runners.model.frameworkmethod $ 1.RunreflectiveCall(FrameworkMethod.java:45) [java] atorg.junit.internal.runners.model.model.reflectivecallable.run(ReflectivIveCallable.java:15) [java] atorg.junit.runners.model.frameworkmethod.invokeexplosiveliver(frameworkmethod.java:42) [java] atorg.junit.internal.runners.statement.invokemethod.evaluate(InvokeMethod.java:20) [java] atorg.junit.internal.runners.statement.runbefores.evaluate(runbefores.java:28) [java] atorg.junit.internal.runners.statement.runafters.evaluate(runafters.java:30) [java] at org.junit.rules.testwatcher $ 1.Evaluate(testWatcher.java:47) [java] at org.junit.rules.testwatcher $ 1.Evaluate(testWatcher.java:47) [java] at org.junit.rules.testwatcher $ 1.Evaluate(testWatcher.java:47) [Java] atorg.junit.rules.runrules.evaluate(runrules.java:18) [java] atorg.junit.runners.parentrunner.runleaf(parentrunner.java:263) [java] atorg.junit.runners.blockjunit4classrunner.runchild(blockjunit4classrunner.java:68) [java] atorg.junit.runners.blockjunit4classrunner.runchild(blockJunit4classrunner.java:47) [Java] atorg.junit.runners.parentrunner $ 3.run(parentrunner.java:231) [java] atorg.junit.runners.parentrunner $ 1.schedule(pardrunner.java:60) [java] atorg.junit.runners.parentrunner.runchildren(parentrunner.java:229) [java] atorg.junit.runners.parentrunner.access $ 000(parentrunner.java:50) [java] at org.junit.runners.parentrunner $ 2.Evaluate(parentrunner.java:222) [java] atorg.junit.runners.parentrunner.run(pardrunner.java:300) [java] atorg.junit.runner.junitcore.run(junitcore.java:157) [java] atorg.junit.runner.junitcore.run(junitcore.java:136) [java]在com.proquest.testing.testmethodrunner.rununittest(testmethodrunner.java:194) [java]在com.proquest.testing.testmethodrunner.run(testmethodrunner.java:62) [java]在com.proquest.testing.simplethread.run(simplethread.java:13)


  1. 如何解决此错误,我不能使用putty启用X11,测试通过Jenkins进行,测试每天在计划的时间自动执行,因此我必须使其动态?
  2. 可以使用"无X11显示变量"one_answers"无头"异常的常春藤依赖性。

如果您的构建需要X11访问权限,则需要用虚拟框架缓冲区包装Jenkins构建。詹金斯(Jenkins)有一个可用的插件来帮助使用此名为XVFB。

然后,您需要让Jenkins知道将此新显示用于测试。

示例:

export DISPLAY=:1.0

1.0是您虚拟X窗口的名称。

相关内容

最新更新