我有两组测试用例如下面的mentioend。
@Test(groups="one", dataProvider = "TestData")
public void firstTest(String data){
//Code
}
@Test(groups="one", dataProvider = "TestData")
public void secondTest(String data){
//Code
}
@Test(groups="two", dataProvider = "TestData")
public void thirdTest(String data){
//Code
}
以下是XML文件。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Test-Automation" parallel="methods" thread-count="2" verbose="1">
<test name="Suite Test" parallel="methods" thread-count="2" verbose="1">
<listeners>
<listener class-name="GroupByInstanceEnabler"></listener>
</listeners>
<classes>
<class name="SampleTest">
<methods>
<include name="firstTest"/>
<include name="secondTest"/>
<include name="thirdTest"/>
</methods>
</class>
</classes>
</test>
</suite>
以下是pom.xml构建详细信息。
<build>
<finalName>Automation</finalName>
<filters>
<filter>profiles/${build.profile.id}/config.properties</filter>
</filters>
<resources>
<resource>
<filtering>true</filtering>
<directory>${basedir}/src/test/resources</directory>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.20.1</version>
<configuration>
<suiteXmlFiles>
<suiteXmlFile>${project.basedir}/testng.xml</suiteXmlFile>
</suiteXmlFiles>
<parallel>method</parallel>
<threadCount>2</threadCount>
</configuration>
</plugin>
</plugins>
</build>
我的问题:
使用Maven,如何运行组&#34;一个&#34;和小组&#34;两个&#34;分开。
我试过&#34; mvn test -Dgroups = 2&#34;但它只能正常运行(所有测试)。
注意:我使用2个不同的配置文件来运行组&#34;一个&#34;两次具有不同的值。这就是您在pom.xml文件中看到配置文件配置的原因。
答案 0 :(得分:2)
您可以使用beanshell表达式来完成此操作。
首先将如下所示的beanshell表达式添加到套件xml文件中。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite" parallel="false">
<test name="Test">
<method-selectors>
<method-selector>
<script language="beanshell">
<![CDATA[whatGroup = System.getProperty("groupToRun");
groups.containsKey(whatGroup);
]]>
</script>
</method-selector>
</method-selectors>
<classes>
<class name="organized.chaos.GroupsPlayGround" />
</classes>
</test> <!-- Test -->
</suite> <!-- Suite -->
这样,您可以使用IDE中的套件xml,并仍然选择要执行的组。如果没有通过JVM参数提供值-DgroupToRun=one
有关beanshell执行的更多信息,请参阅: