【发布时间】:2018-04-06 02:40:33
【问题描述】:
我有一个带有以下注释的测试用例 -
@Test(groups="groupA", dataProvider="DataSet1")
但是当我触发以下 maven 命令时,它不会执行测试 -
mvn test -Dgroups=groupA
我在控制台中看到的就是这个 -
...
...
[INFO] --- maven-surefire-plugin:2.19.1:test (default-test) @ abc-proj ---
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running TestSuite
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.733 sec - in TestSuite
Results :
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
但是当我简单地运行mvn test 时,它会执行测试。不知道为什么它会这样。我正在使用 Surefire 插件版本 2.19.1 和 testng 版本 6.9.9。任何帮助将不胜感激。
编辑我没有使用 testng.xml,只是出于好奇,我在一个小项目中尝试了同样的事情 -> 它可以工作。在那个项目中,我创建了一个示例类 -
import org.testng.annotations.Test;
public class SampleTest {
@Test(groups = "groupA")
public void testA() {
System.out.println("Inside A");
}
@Test(groups = "groupB")
public void testB() {
System.out.println("Inside B");
}
}
pom.xml 是 -
...
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.9.9</version>
</dependency>
</dependencies>
</project>
这里的命令mvn test -Dgroups=groupA 工作正常!
EDIT2 当我删除 dataProvider 注释时,我注意到一些不同的结果,控制台现在显示 -
Tests run: 1, Failures: 0, Errors: 0, Skipped: 1
【问题讨论】:
-
你必须知道这些组是区分大小写的,所以你必须给
mvn test -Dgroups=abc而不是mvn test -Dgroups=ABC....此外,如果你定义一个不存在的数据提供者,测试将不会正在执行……因为它不存在…… -
我已经注意区分大小写以及数据提供者。看起来与 dataProvider 分组在 testng 和 maven 组合中效果不佳。在这里看到了一些相关的东西 - stackoverflow.com/questions/39595654/…
-
如果你给了一个数据提供者,那么数据提供者工作得很好,当然你必须实现一个......并且 testng 与 Maven 一起工作得很好......我不确定你的确切的问题是..?如果您提供不存在的数据提供者,则不会执行测试?
-
@khmarbaise 我想我已经就我的问题提供了足够的信息。对不起,如果它仍然对你没有任何意义。
标签: java maven testng maven-surefire-plugin