TestNG + Groups + BeforeGroups按字母顺序运行方法

时间:2013-08-27 05:02:43

标签: testng

我有很多小组,我希望能够并行运行全部或子集,例如-Dgroups = a,b,...我有一个用@BeforeGroups注释注释的方法,需要在组运行之前做一些行为。我看到的行为是当我运行两个特定组时,一个用三个测试,另一个用两个,第一组的前两个测试运行,然后是第二组的两个测试,然后是第一组的最后一个方法。 (基于定义测试的类名的字母顺序)这些方法分布在不同的类中。请帮忙!

的testng.xml

<!DOCTYPE suite SYSTEM "http://beust.com/testng/testng-1.0.dtd" >
<suite name="API Tests">
    <test name="all">
        <groups>
            <run>
                <include name="a" />
                <include name="b" />
                <include name="c" />
                <include name="d" />
                <include name="e" />
            </run>
        </groups>
        <packages>
            <package name="package.*" />
        </packages>
    </test>
</suite>

执行顺序(带有混淆的缩写)

Class: E; Method: testF; Group: a
Class: I; Method: testI; Group: a
Class: S; Method: testSH; Group: b
Class: S; Method: testSI; Group: b
Class: T; Method: testF; Group: a

注意:我尝试将线程设置为1,这不会修复测试/组执行的顺序。

1 个答案:

答案 0 :(得分:1)

您需要包含线程数。如果你有两组&amp;需要在2个并行线程中运行它们,XML将是 -

<suite name="FooSuite" parallel="tests" thread-count="2">
<test name="Group1">
    <groups>
        <run>
            <include name="1" />
        </run>
    </groups>
    <packages>
        <package name="package.*" />
    </packages>
</test>
<test name="Group2">
    <groups>
        <run>
            <include name="2" />
        </run>
    </groups>
    <packages>
        <package name="package.*" />
    </packages>
</test>

允许测试,课程和时间并行运行。方法。您可以相应地设计XML以满足您的要求。