我试图将测试分成组,例如,“FULL”执行组和较轻的“SMOKE”组。我想在主 pom 中有一个默认配置文件,它只运行 SMOKE 组,然后让 CI 服务器激活一个单独的 FULL 组来执行所有测试。
但是,我在让 maven/testng 仅执行 SMOKE 集时遇到了问题。当我将 FULL 组添加到 excludeGroups 时,不会执行任何测试。
我对 maven-surefire-plugin 的有效 pom 是这样的:
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>default-test</id>
<phase>test</phase>
<goals>
<goal>test</goal>
</goals>
<configuration>
<groups>USER</groups>
<excludedGroups>FULL</excludedGroups>
</configuration>
</execution>
</executions>
<configuration>
<groups>USER</groups>
<excludedGroups>FULL</excludedGroups>
</configuration>
</plugin>
我的测试类是这样注释的:
@Test(groups = { "FULL", "SMOKE" }, enabled=true)
public void testOne() { }
@Test(groups = { "FULL" }, enabled=true)
public void testTwo() { }
每个班级为 SMOKE 测试组选择一个具有代表性的测试。我试图省略 excludeGroups 标记,并且只将组标记设置为 SMOKE,但随后所有测试都会执行。
任何有助于我理解 testng 组层次结构的帮助将不胜感激。