testng preserve-order不能使用优先级

时间:2016-10-21 19:25:50

标签: selenium jenkins selenium-webdriver ant testng

我有一个testng套件文件,在测试中有10个类。说

<classes>
 <class name = "Class1">
 <class name = "Class2">
 <class name = "Class3">
</classes>

现在class1有3个方法,顺序为优先级1,2,3,类2和class3相同。当我在Jenkins中运行具有preserve-order =“true”的套件的作业时,测试运行为class1-priority1 test,class2-priority1,class3-priority1,class1-priority2,class2-priority2等。

我需要首先按顺序执行与class1相关的所有测试,然后再执行class2,然后执行class3。

有人能告诉我为什么会出现这种行为吗?

2 个答案:

答案 0 :(得分:0)

默认顺序取决于Java反射API。您可以在 &lt; 下添加方法名称方法&gt; 按您想要的顺序排列。这可能很麻烦。文件变大时可能看起来很笨拙。不过,它可能在这方面对你有帮助。

示例xml:

<class name="Fully qualified class name without extension">
    <methods>
       <include name="method_1" />
       <include name="method_1" />
            .....
            .....
        <include name="method_N" />
     </methods>
</class>

除了之前的解决方案,您可以使用注释在测试方法中添加测试用例的依赖项。但是,更改/修改xml将远远好于修改代码。

答案 1 :(得分:0)

您描述的顺序是预期的顺序。

您应该尝试使用dependsOnMethods而不是优先级。