为什么“:project:testXlib”替换了“:project:test”Gradle任务,它是如何工作的?

时间:2017-05-22 22:04:31

标签: java gradle xvfb

环境

我目前正尝试在Travis CI的多个环境中通过xvfb运行JavaFX GUI测试。我正在使用Gradle运行这些测试,同时使用TestFX和NestedRunner测试框架来编写它们。在运行测试之前,会调用export DISPLAY=:99.0

上下文

有时构建成功,有时则失败。但是,我注意到Gradle输出了一行我可以用来预测构建成功或失败的时间。

在显示该行之前,您将在Travis CI日志中看到以下内容:

:richtextfx:compileJava
:richtextfx:processResources
:richtextfx:classes
:richtextfx:compileTestJava
:richtextfx:processTestResources
:richtextfx:testClasses

之后,出现两行中的一行,预测构建是否成功:

  • 成功::richtextfx:testXlib: extension "RANDR" missing on display ":99.0".
  • 失败时::richtextfx:test

我的问题

为什么Gradle会将test任务更改为testXlib任务?处理这个问题的内在机制是什么?这一切意味着什么?

1 个答案:

答案 0 :(得分:1)

Gradle肯定不会这样做。我从未听说过名为testXlib的任务,而且完整的Gradle源也不包含此字符序列。

您的构建脚本执行此操作,或您应用的某个插件,或Travis CI应用的init脚本。

尝试增加日志记录级别以进行调试,并添加对tasks --all的调用,这可能会有所帮助。