我们以前有一些命令,如下所示:
gradlew test --tests *MyTest
例如,类MyTest在com.test.MyTest包中。 当使用gradle版本<5.0时,这很好用,但是升级到5.1.1后,出现以下错误:
未找到给定的测试,包括:[* MyTest](-测试过滤器)
我们已经替换了所有此类情况,因为我认为使用完整的类路径会更好。但是我想知道为什么这不再起作用了。
顺便说一句:我正在使用TestNG,并且提到的类至少具有一个用@Test注释的公共方法。
答案 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 :(得分:0)
发现了问题。与gradle升级或TestNG无关。
基本上有人在其他类中初始化了全局变量,并在那里使用了固定索引,即
public class myClass extends Something{
private final String name = names.getNames(0);
...
当我们用*调用gradle任务时,它执行了这段代码,在这种情况下,它会导致 IndexOutOfBoundsException ,因为此时列表是空的。
执行以下命令可以帮助我发现问题:
gradlew test --tests *MyTest --debug