升级到 Gradle 5.1.1 后,未找到给定包含的测试

And*_*ver 4 testng gradle

我们曾经有一些命令,如下所示:

gradlew test --tests *MyTest
Run Code Online (Sandbox Code Playgroud)

例如 MyTest 类在包中com.test.MyTest。当使用低于 5.0 的 Gradle 版本时,这工作得很好,但在升级到 5.1.1 后,我收到以下错误:

未找到给定的测试包括:[*MyTest](--tests filter)

我们已经替换了所有此类事件,因为我认为使用类的完整路径要好得多。但我想知道为什么这不再起作用了。

顺便说一句:我正在使用 TestNG,并且提到的类至少有一个用@Test.

Jon*_*Lee 11

我花了很多时间才找到解决方案,所以在这里分享一下。我通过No tests found for given includes: [*MyTest](--tests filter)根据https://linked2ev.github.io/devsub/2019/09/30/Intellij-junit4-gradle-issue/更改 Intellij 设置解决了错误

脚步:

  1. 文件 > 设置 (Ctrl+Alt+S)
  2. 构建、执行、部署 > 构建工具 > gradle
  3. 使用:Intellij IDEA 运行测试


And*_*ver 4

发现问题了。它与 gradle 升级或 TestNG 无关。

基本上有人在其他类中初始化了一个全局变量并在那里使用了固定索引,即

public class myClass extends Something{
    private final String name = names.getNames(0);
    ...
Run Code Online (Sandbox Code Playgroud)

当我们使用 * 调用 gradle 任务时,它会执行该代码段,在这种情况下,它会导致 IndexOutOfBoundsException,因为此时列表为空。

执行以下命令帮助我找到了问题:

gradlew test --tests *MyTest --debug
Run Code Online (Sandbox Code Playgroud)