如果我们有<include name="web" >
and <include name="weekend" >
,TestNG 会运行属于 web 或周末的所有方法。
是否可以更改此行为,以便 TestNG 运行属于 web和周末的所有方法?有谁知道实现这一目标的方法?
我找到了解决方案。
我使用 beanshell 在<method-selector>
标签内编写条件脚本。
就像是:
<method-selectors>
<method-selector>
<script language="beanshell"><![CDATA[
(groups.containsKey(FIRST_GROUP) && groups.containsKey(SECOND_GROUP))
]]>
</script>
</method-selector>
</method-selectors>
是的,BeanShell 是一种方法。
如果您需要更复杂的东西,您可以使用 IMethodInterceptor,它基本上可以让您在 TestNG 开始处理它们之前重新排序所有测试方法。
这是一个例子:
http://beust.com/weblog/2008/03/29/test-method-priorities-in-testng/