Gradle + TestNG仅作为单个测试运行某些测试

时间:2014-08-08 00:58:55

标签: java selenium intellij-idea gradle testng

我已经使用Gradle + TestNG + Java + Selenium进行了一段时间的网络用户界面测试,而且我最近才开始讨论这个问题。出于某种原因,当我尝试使用-DtaskName.single=ExampleTestClass ExampleTestClass ExampleTestClass.java来运行单个测试类时,它只适用于我的一些测试类。

我收到错误:Could not find a matching test for pattern: ExampleTestClass

由于拼写错误或缺少@Test注释等,我在过去看到过这个错误,所以我熟悉"正常"原因,但这很奇怪,因为它似乎适用于某些测试类而不是其他测试类。我已经检查了代码,并且所有注释和组都已用于测试方法,它们在我的IDE(IntelliJ)中运行良好,并且它们都位于相同的目录/包路径中。我有什么东西在这里失踪吗?我不知道我是否看到了什么,但我注意到它没有使用没有Test的测试类作为Java类名的最后四个字符但在重命名时,仍然没有骰子。我已阅读文档但无法发现任何错误。还有什么可能导致这种失败吗?这很奇怪,因为这些测试在各方面都非常相似。我甚至检查了字符编码等 - 它们之间没有任何差异。

任何关于下一步的建议或想法都会很棒。

干杯, 达尔文

2 个答案:

答案 0 :(得分:1)

我遇到了gradle 1.6(没有时间升级)和TestNG完全相同的事情。如果您尝试单独运行单个测试,则会跳过具有多个测试的项目中的单个测试,并且gradle会抱怨没有找到它。调试运行显示gradle找到的缺少的测试.class文件。

除了测试方法之外,我还通过在测试中添加@Test注释来解决这个问题。这似乎让gradle找到它。

答案 1 :(得分:1)

我最近遇到了类似的问题。我尝试使用-DTest.single--tests进行测试,但未找到。经过一番挫折后,我意识到测试是在我的测试任务配置中排除的测试组中。我错误地认为使用-Dtest.single运行会否决排除项,包括测试组允许它作为单个测试运行。