0

我有许多组,我希望能够并行运行全部或子集,例如 -Dgroups=a,b,...正在运行。我看到的行为是当我运行两个特定组时,一个进行三个测试,另一个进行两个测试,第一组的前两个测试运行,然后第二组的两个测试,然后是第一组的最后一个方法。(根据定义测试的类名按字母顺序排列)方法分布在不同的类中。请帮忙!

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,这并不能修复测试/组执行的顺序。

4

1 回答 1

1

您需要包括线程数。如果您有 2 个组并且需要在 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 以满足您的要求。

于 2013-08-27T06:33:43.107 回答