在单个 testng.xml 中管理多个测试组

Managing multiple test groups in single testng.xml

在由 testNG 管理的基于 Java 的项目中,我有各种各样的测试,每个测试可以属于几个组。假设这些组是“Sanity”、“Regression”、“UI”、“API”、“Integration”、“Module1”、“Module2”、“Module3”等
例如。 @Test(priority = 7 ,groups= {"Sanity", "Regression", "UI", "Partners"}, description= "Create new partner")
我希望能够 运行 在 ChromeFirefoxEdge 浏览器上进行测试。
我知道我可以在 testng.xml 中为每个特定组合或每个特定组创建单独的测试,例如

<test verbose="2" preserve-order="true" name="ChromeTests">  
    <parameter name="browser" value="Chrome"/>  
    <classes>  
        <class name="tests.MainRunner">  
        </class>  
    </classes>  
</test>  

到 运行 Chrome 中的所有测试,我可以使用

<test verbose="2" preserve-order="true" name="Sanity Tests">
    <groups>
        <run>
            <include name = "Sanity">
            </include>
        </run>
    </groups>
    <classes>
        <class name="tests.MainRunner">
        </class>
    </classes>
</test>

到运行“理智”相关测试,我可以使用

 <test verbose="2" preserve-order="true" name="ChromeTests">
    <parameter name="browser" value="Chrome"/>
    <groups>
        <run>
            <include name = "Sanity">
            </include>
        </run>
    </groups>
    <classes>
        <class name="tests.MainRunner">
        </class>
    </classes>
</test>

到 运行 对“Chrome”的“理智”测试。
但是我有 3 个浏览器,假设有 10 个测试组。
我不认为我必须在 testng.xml 中定义 30 个测试来涵盖我拥有的所有可能组合。
另外,如何从 IntelliJ?

中调用 testng.xml 中的特定测试

请查看已实施的以下问题:https://youtrack.jetbrains.com/issue/IDEA-115242 它应该提供 运行 几个用逗号分隔的组的能力:

只需将您的群组分成几个单独的 .xml 文件 - Sanity.xml & Regression.xml等 然后执行以下操作:

<?xml version = "1.0" encoding = "UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >

<suite name="Regression">

  <test name="Regression Suite">

    <groups>
      <run>
        <include name="Regression"/>
      </run>
    </groups>

    <packages>
      <package name="com.auto.test.*"/>
    </packages>

  </test>

</suite>

然后您需要像这样更新您的 pom.xml:

<plugin>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.22.0</version>
        <configuration>
          <suiteXmlFiles>
            <!--suppress UnresolvedMavenProperty -->
          <suiteXmlFile>src/test/resources/suites/${suite}.xml</suiteXmlFile>
          </suiteXmlFiles>
        </configuration>
      </plugin>

然后,每当您 运行 在 Maven 中进行测试时,您都必须像这样传递套件文件名:

mvn clean test -Dsuite=Regression