升级到Gradle 5.1.1后,没有找到给定的测试

时间:2019-02-26 06:49:57

标签: gradle testng

我们以前有一些命令,如下所示:

gradlew test --tests *MyTest

例如,类MyTest在com.test.MyTest包中。 当使用gradle版本<5.0时,这很好用,但是升级到5.1.1后,出现以下错误:

  

未找到给定的测试,包括:[* MyTest](-测试过滤器)

我们已经替换了所有此类情况,因为我认为使用完整的类路径会更好。但是我想知道为什么这不再起作用了。

顺便说一句:我正在使用TestNG,并且提到的类至少具有一个用@Test注释的公共方法。

2 个答案:

答案 0 :(得分:7)

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

步骤:

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

答案 1 :(得分:0)

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

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

public class myClass extends Something{
    private final String name = names.getNames(0);
    ...

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

执行以下命令可以帮助我发现问题:

gradlew test --tests *MyTest --debug