参数化testng.xml的suite标签中的parallel =“methods”属性

时间:2016-11-04 10:00:34

标签: xml testing testng

我有一种情况需要在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

2 个答案:

答案 0 :(得分:2)

您可以使用IAlterSuiteListener公开实际的XmlSuite对象,然后TestNG开始创建套件工作程序以便执行,从而让您有机会更改您想要的任何内容。在实现等方面,这个监听器与所有其他监听器完全一样,

您只需确保通过套件文件(或)中的IAlterSuiteListener标记通过服务加载程序连接<listeners>实现。唯一需要注意的是,您无法通过@Listeners注释来连接此侦听器实现。

答案 1 :(得分:1)

开箱即用,但您可以自行管理:

  1. 将预处理文件的xslt文件,或
  2. 您可以尝试使用ISuiteListener并根据您自己的逻辑从parallel修改XmlSuite属性(但我没有检查它是否正常工作)