我已经使用 Gradle + TestNG + Java + Selenium 进行 Web UI 测试已经有一段时间了,但我最近才遇到这个问题。由于某种原因,当我尝试使用 -DtaskName.single=ExampleTestClass
运行单个测试类时,其中 ExampleTestClass
将为 ExampleTestClass.java
它只能工作在我的一些测试类(class)上。
我收到错误:无法找到模式的匹配测试:ExampleTestClass
由于拼写错误或缺少 @Test
注释等原因,我过去曾见过此错误,因此我熟悉“正常”原因,但这似乎很奇怪从事一些测试类(class),而不是其他类(class)。我已经检查了代码,测试方法的所有注释和组都已就位,它们在我的 IDE (IntelliJ) 中运行良好,并且它们都位于同一目录/包路径中。我在这里缺少什么吗?我不知道我是否看到了一些东西,但我确实注意到它不适用于没有 Test
作为 Java 类名的最后四个字符但在重命名时的测试类它,仍然没有骰子。我已阅读文档并没有发现任何错误。还有其他什么可能导致此失败吗?这很奇怪,因为这些测试在各个方面都非常相似。我什至检查了字符编码等 - 它们之间没有任何差异。
任何关于下一步该去哪里的建议或想法都会很棒。
干杯, Darwin
最佳答案
我在 gradle 1.6(没有时间升级)和 TestNG 中遇到了完全相同的事情。具有多个测试的项目中的单个测试会被跳过,并且如果您尝试单独运行单个测试,gradle 也会提示找不到它。调试运行显示 gradle 发现缺少的测试 .class 文件。
除了测试方法之外,我还通过向测试类添加@Test注释来解决这个问题。这似乎让 gradle 找到了它。
关于java - Gradle + TestNG 仅将某些测试作为单个测试运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25194578/