【问题标题】:How to parameterise method name in TestNG xml file?如何在 TestNG xml 文件中参数化方法名称?
【发布时间】:2020-02-17 14:46:31
【问题描述】:
下面是 testng.xml 代码。这里我有测试名称 Test1,我想包含所有以回归标签开头的场景(标签存在于黄瓜特征文件中)。
我想参数化“regression.*”值并希望在运行时作为参数传递(Runas testng)。
<test name="Test1">
<groups>
<run>
<include name="regression.*"/>
</run>
</groups>
有人可以帮我解决这个问题吗?
提前谢谢.....
【问题讨论】:
-
-
您能否提供有关如何将黄瓜与 testng 和您的功能文件示例一起使用的详细信息。例如,如果您使用BDDTestFactory2,并且在功能文件中有@regression 之类的标签,则可以使用<include name="regression"/>
标签:
java
selenium
testing
cucumber
testng
【解决方案1】:
您应该能够使用 beanshell 作为方法选择器在运行时构建动态选择组。
这是一个示例 beanshell 驱动的套件 xml。在下面的示例中,我们使用 JVM 参数 -DgroupToRun 来传递我们想要执行的组的名称。
有关如何在 TestNG 中使用 beanshell 的更多详细信息,请查看
<?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 -->