@Test(groups = { "all", "smoke" })
class task {
public void sendTask() {
}
public void captureTasks() {
}
public void captureTaskEvents() {
}
}
如果我设置了-Dtest_mode=send
,请捕获,我们将使用System.getProperty("test_mode")
值来确定自定义内容。
现在发送test_mode
仅运行sendTasks()
方法。
答案 0 :(得分:0)
您可以通过TestNG中的Beanshell方法选择器轻松完成此操作。这是一个样本。
我的测试类如下所示
package com.rationaleemotions.stackoverflow.qn48163083;
import org.testng.annotations.Test;
public class SampleA {
@Test
public void testForAndroid() {
System.err.println(getClass().getName() + ".testForAndroid() ran");
}
@Test
public void testForWindows() {
System.err.println(getClass().getName() + ".testForWindows() ran");
}
}
package com.rationaleemotions.stackoverflow.qn48163083;
import org.testng.annotations.Test;
public class SampleB {
@Test
public void testForAndroid() {
System.err.println(getClass().getName() + ".testForAndroid() ran");
}
@Test
public void testForWindows() {
System.err.println(getClass().getName() + ".testForWindows() ran");
}
}
这是我的套件xml文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="1265_Suite" parallel="false" verbose="4">
<test name="92" parallel="false">
<method-selectors>
<method-selector>
<script language="beanshell">
<![CDATA[
methodPattern = System.getProperty("methodPattern");
(methodPattern == null || methodPattern.trim().isEmpty()) || testngMethod.getMethodName().contains(methodPattern);
]]>
</script>
</method-selector>
</method-selectors>
<packages>
<package name="com.rationaleemotions.stackoverflow.qn48163083"/>
</packages>
</test>
</suite>
这里我通过JVM参数-DmethodPattern
获取要执行的方法名称。如果没有提供任何内容,我们默认运行所有内容。
有关如何在TestNG中使用beanshells的更多信息,请查看我的博文here。
以下是使用-DmethodPattern=testForAndroid
...
... TestNG 6.13.1 by Cédric Beust (cedric@beust.com)
...
com.rationaleemotions.stackoverflow.qn48163083.SampleA.testForAndroid() ran
com.rationaleemotions.stackoverflow.qn48163083.SampleB.testForAndroid() ran
===== Invoked methods
SampleA.testForAndroid()[pri:0, instance:com.rationaleemotions.stackoverflow.qn48163083.SampleA@df27fae] 233996206
SampleB.testForAndroid()[pri:0, instance:com.rationaleemotions.stackoverflow.qn48163083.SampleB@2f0a87b3] 789219251
=====
PASSED: testForAndroid
PASSED: testForAndroid
===============================================
92
Tests run: 2, Failures: 0, Skips: 0
===============================================
===============================================
1265_Suite
Total tests run: 2, Failures: 0, Skips: 0
===============================================