我想根据例如从jenkins传递的变量来运行测试用例,请选择要运行的测试用例:testcaseOne,testcaseTwo
在pom.xml(maven)中:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.18.1</version> <configuration> <suiteXmlFiles> <suiteXmlFile>testng.xml</suiteXmlFile> </suiteXmlFiles> <systemPropertyVariables> <chooseCase>${chooseCase}</chooseCase> <--this dont work </systemPropertyVariables> <parallel>tests</parallel> <threadCount>10</threadCount> </configuration> </plugin>
我有两个testng @test方法:
@Test(groups="caseOne") @Test(groups="caseTwo")
还有我的testng.xml文件:
<test name="Test"> <groups> <run> <include name="${chooseCase}"/> </run> </groups> <classes> <class name="AppTest"/> <class name="AppTest2"/> </classes> </test> <!-- Test -->
如何根据我要运行的测试数量和数量来传递此参数?也许有完全不同的方式来做到这一点?
您可以在testng.xml文件http://testng.org/doc/documentation- main.html#beanshell中使用BeanShell脚本,并在其中读取系统变量,例如:
<test name="Test"> <method-selectors> <method-selector> <script language="beanshell"> <![CDATA[ String myTestGroup = System.getProperty("chooseCase"); groups.containsKey(myTestGroup); ]]> </script> </method-selector> </method-selectors> <classes> <class name="AppTest"/> <class name="AppTest2"/> </classes> </test>