我有两组测试用例,如下所述。
@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,我如何分别运行组“一”和组“二”。
我试过"mvn测试-Dgroups=two“,但它只正常运行(所有测试)。
注意:我使用两个不同的配置文件运行组“一”与不同的值两次。这就是在pom.xml文件中看到配置文件配置的原因。
发布于 2018-01-24 03:47:01
您可以使用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以默认情况下运行所有内容。
有关beanshell执行的更多信息,请参阅:
https://stackoverflow.com/questions/48404514
复制相似问题