升级到 Gradle 5.1.1 后,未找到给定包含的测试
No tests found for given includes after upgrade to Gradle 5.1.1
我们曾经有一些命令如下:
gradlew test --tests *MyTest
例如 class MyTest 在包 com.test.MyTest
中。
当使用 Gradle 版本 < 5.0 时,这工作得很好,但在升级到 5.1.1 后,我收到以下错误:
No tests found for given includes: [*MyTest](--tests filter)
我们已经替换了所有此类事件,因为我认为使用 class 的完整路径要好得多。但我想知道为什么这不再起作用了。
顺便说一句:我正在使用 TestNG,上面提到的 class 至少有一个 public 方法用 @Test
.
注释
找到问题了。它与 gradle 升级或 TestNG 无关。
基本上有人在其他 class 中初始化了一个全局变量并在那里使用了一个固定索引,即
public class myClass extends Something{
private final String name = names.getNames(0);
...
当我们用 * 调用 gradle 任务时,它执行了那段代码,在这种情况下,它会导致 IndexOutOfBoundsException,因为此时列表是空的时间。
执行以下命令帮助我找到了问题:
gradlew test --tests *MyTest --debug
我花了很多时间才找到解决方案,所以在这里分享。我通过根据 https://linked2ev.github.io/devsub/2019/09/30/Intellij-junit4-gradle-issue/
更改 Intellij 设置解决了 No tests found for given includes: [*MyTest](--tests filter)
错误
步骤:
- 文件 > 设置 (Ctrl+Alt+S)
- 构建、执行、部署 > 构建工具 > gradle
- 运行 测试使用:Intellij IDEA
我们曾经有一些命令如下:
gradlew test --tests *MyTest
例如 class MyTest 在包 com.test.MyTest
中。
当使用 Gradle 版本 < 5.0 时,这工作得很好,但在升级到 5.1.1 后,我收到以下错误:
No tests found for given includes: [*MyTest](--tests filter)
我们已经替换了所有此类事件,因为我认为使用 class 的完整路径要好得多。但我想知道为什么这不再起作用了。
顺便说一句:我正在使用 TestNG,上面提到的 class 至少有一个 public 方法用 @Test
.
找到问题了。它与 gradle 升级或 TestNG 无关。
基本上有人在其他 class 中初始化了一个全局变量并在那里使用了一个固定索引,即
public class myClass extends Something{
private final String name = names.getNames(0);
...
当我们用 * 调用 gradle 任务时,它执行了那段代码,在这种情况下,它会导致 IndexOutOfBoundsException,因为此时列表是空的时间。
执行以下命令帮助我找到了问题:
gradlew test --tests *MyTest --debug
我花了很多时间才找到解决方案,所以在这里分享。我通过根据 https://linked2ev.github.io/devsub/2019/09/30/Intellij-junit4-gradle-issue/
更改 Intellij 设置解决了No tests found for given includes: [*MyTest](--tests filter)
错误
步骤:
- 文件 > 设置 (Ctrl+Alt+S)
- 构建、执行、部署 > 构建工具 > gradle
- 运行 测试使用:Intellij IDEA