TestNG使用重叠组进行测试,不使用maven中的ExcludeGroup

TestNG使用重叠组进行测试,不使用maven中的ExcludeGroup,maven,testng,Maven,Testng,我试图将测试分为几个组,例如,“完整”执行组和较轻的“冒烟”组。我希望在主pom中有一个只运行SMOKE组的默认配置文件,然后让CI服务器激活一个单独的完整组,该组执行所有测试 然而,我在让maven/testng只执行冒烟集时遇到了一个问题。将完整组添加到excludedGroups时,不会执行任何测试 我对maven surefire插件的有效pom如下: <plugin> <artifactId>maven-surefire-plugin</artif

我试图将测试分为几个组,例如,“完整”执行组和较轻的“冒烟”组。我希望在主pom中有一个只运行SMOKE组的默认配置文件,然后让CI服务器激活一个单独的完整组,该组执行所有测试

然而,我在让maven/testng只执行冒烟集时遇到了一个问题。将完整组添加到excludedGroups时,不会执行任何测试

我对maven surefire插件的有效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>
每个班级为烟雾测试组选择一个代表性测试。我试图省略excludedGroups标记,只将groups标记设置为SMOKE,但随后所有测试都会执行


任何有助于我理解testng组层次结构的帮助都将不胜感激。

首先,当您在ExcludedGroup中给出完整的测试时,不希望运行任何测试,因为它排除了所有包含它的测试用例。如果您只想运行SMOKE,则只能按以下方式分组吸烟

<plugin>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.6</version>
          <executions>
              <execution>
                  <id>default-test</id>
                  <phase>test</phase>
                  <goals>
                      <goal>test</goal>
                  </goals>
              </execution>
          </executions>
          <configuration>
              <groups>SMOKE</groups>
          </configuration>
      </plugin>

maven surefire插件
2.6
默认测试
测试
测试
冒烟
上面的配置对我来说很好

下面的配置仅运行testTwo()


满满的
冒烟

即使显式排除了测试用例,但执行该测试用例的唯一情况(我能想到)是当其他测试用例依赖于(testng“depends”)该测试并且该依赖测试用例被包括在执行中时。

首先,当您在excludedGroups中提供FULL时,不运行任何测试是预期的行为,因为它排除了包含它的所有测试用例。如果您只想运行SMOKE,则只能按以下方式分组吸烟

<plugin>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.6</version>
          <executions>
              <execution>
                  <id>default-test</id>
                  <phase>test</phase>
                  <goals>
                      <goal>test</goal>
                  </goals>
              </execution>
          </executions>
          <configuration>
              <groups>SMOKE</groups>
          </configuration>
      </plugin>

maven surefire插件
2.6
默认测试
测试
测试
冒烟
上面的配置对我来说很好

下面的配置仅运行testTwo()


满满的
冒烟

唯一一种(我能想到的)即使显式排除了测试用例也能执行的情况是当其他测试用例依赖时(testng'depends')在此测试中,将包含相关测试用例以供执行。

有关组选择和高级组的更多详细信息,请参阅上有关组选择和高级组的更多详细信息
<configuration>
              <groups>FULL</groups>
              <excludedGroups>SMOKE</excludedGroups>
          </configuration>