为什么 ":project:testXlib" 取代 ":project:test" Gradle 任务,它是如何工作的?

Why does ":project:testXlib" replace the ":project:test" Gradle task and how does that work?

环境

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

上下文

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

在该行出现之前,将在 Travis CI 日志中看到以下内容:

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

之后,出现两行之一,预测构建是否会 succeed/fail:

我的问题

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

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

您的构建脚本执行此操作,或您应用的某些插件,或 Travis CI 应用的初始化脚本。

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