如何并行运行@Before注释?

时间:2019-12-23 19:20:25

标签: java parallel-processing testng

我有几个测试类,每个类都带有@BeforeClass。 我已经添加了在XML中并行运行的选项,但是BeforeClass方法似乎按顺序运行。

如何配置它们同时运行?

<suite name = "TestAllPersonTypes">

    <test name = "TestEmployer" parallel="methods" thread-count="5">
        <classes>
            <class name = "com.mobile.tests.empr.ValidateEmployerBusinessA"/>
        </classes>
    </test>

    <test name = "TestEmployee" parallel="methods" thread-count="5">
        <classes>
            <class name = "com.mobile.tests.empe.ValidateEmployeeBusinessA"/>
        </classes>
    </test>

    <test name = "TestAgent" parallel="methods" thread-count="5">
        <classes>
            <class name = "com.mobile.tests.agnt.ValidateAgentBusinessA"/>
        </classes>
    </test>

</suite>

1 个答案:

答案 0 :(得分:2)

这里的问题是您要为每个测试指定并行性。 您基本上是在告诉每个测试并行运行其方法。

您需要做的是告诉整个套件并行运行测试。这样,每个类的每个方法(不仅是@Before注释)都将并行运行。

您可以通过从测试中删除并行化并添加到套件中来做到这一点:

<test name = "TestEmployer">
    <classes>
        <class name = "com.mobile.tests.empr.ValidateEmployerBusinessA"/>
    </classes>
</test>

<test name = "TestEmployee">
    <classes>
        <class name = "com.mobile.tests.empe.ValidateEmployeeBusinessA"/>
    </classes>
</test>

<test name = "TestAgent">
    <classes>
        <class name = "com.mobile.tests.agnt.ValidateAgentBusinessA"/>
    </classes>
</test>

您可以在testNG docs for parallelism.

中获得更多信息