我必须在Package中运行Method1,其结构类似于
Package - Regression
|--class1
|-method1
|-method2
|--class2
|-method1
|-method2
|--class3
.
.
and so on goes to classN where N can be from 100 to 2000.
现在我需要编写testNG.xml,这样所有类中的method1都将在包级别执行
或者将来是否需要在程序包级别执行method1和method2?
提前感谢解决方案
答案 0 :(得分:1)
您可以使用beanshell方法选择器轻松完成此操作。
这是一个样本
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="54859054_suite" verbose="2">
<method-selectors>
<method-selector>
<script language="beanshell">
<![CDATA[
whatMethod = System.getProperty("methodToExecute", "testMethod1");
method.getName().equals(whatMethod);
]]>
</script>
</method-selector>
</method-selectors>
<test name="54859054_test">
<packages>
<package name="com.rationaleemotions.stackoverflow.qn54859054"/>
</packages>
</test>
</suite>
默认情况下,上述beanshell将执行名称为“ testMethod1”的方法(因为它是我们为JVM参数methodToExecute
提供的默认值。
如果您想在运行时更改其值,只需通过JVM扩展传递一个新值。例如-DmethodToExecute=testMethod2