我有一个带有以下注释的 testng 案例 -
@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
注释时,我注意到一些不同的结果,控制台现在显示 -
测试运行:1,失败:0,错误:0,跳过:1
最佳答案
您可能需要将测试分组到 surefire 配置中才能做到这一点:-
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<configuration>
<groups>ABC,XYZ</groups>
</configuration>
</plugin>
然后执行
mvn test -Dgroups=ABC
关于java - Maven surefire 插件没有为 testng 选择组选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46925103/