如何并行运行@Before注释?

问题描述 投票:0回答:1

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

如何配置它们以同时运行的方式?

<suite name = "TestAllPersonTypes">

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

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

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

</suite>
java parallel-processing testng
1个回答
0
投票

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

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

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

<suite name = "TestAllPersonTypes" parallel="methods" thread-count="10">

您可以在testNG docs for parallelism.中获得更多信息,>

© www.soinside.com 2019 - 2024. All rights reserved.