我有一种情况需要在testng套件上实现切换机制,以决定是否并行运行测试。
目前我的testng.xml看起来如下:
jint len = env->GetArrayLength(myIntArray);
jint *elements = env->GetPrimitiveArrayCritical(myIntArray, NULL);
// Use elements...
env->ReleasePrimitiveArrayCritical(myIntArray, elements, 0);
我的目标是能够指定类似的内容:
<suite name="XYZ" parallel="methods" thread-count="3">
<test verbose="2" name="ABC">
<classes>
<class name="xx.yy">
<methods>
<include name="test3" />
<include name="test2" />
<include name="test1" />
</methods>
</class>
</classes>
</test>
</suite>
$ PARALLEL_FLAG可以动态获取值 <suite name="XYZ" parallel="$PARALLEL_FLAG" thread-count="3">
或methods
。
答案 0 :(得分:2)
您可以使用IAlterSuiteListener公开实际的XmlSuite
对象,然后TestNG开始创建套件工作程序以便执行,从而让您有机会更改您想要的任何内容。在实现等方面,这个监听器与所有其他监听器完全一样,
您只需确保通过套件文件(或)中的IAlterSuiteListener
标记通过服务加载程序连接<listeners>
实现。唯一需要注意的是,您无法通过@Listeners
注释来连接此侦听器实现。
答案 1 :(得分:1)
开箱即用,但您可以自行管理:
ISuiteListener
并根据您自己的逻辑从parallel
修改XmlSuite
属性(但我没有检查它是否正常工作)