如何并行 运行 @Before 注释?

How do I run @Before annotations in parallel?

我有几个测试 类 每个测试 @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>

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

您需要做的是让您的整个套件并行 运行 您的测试。这样,每个 class 的每个方法(不仅是 @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.

中获得更多信息