java - 如何并行运行 @Before 注释?

标签 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>

最佳答案

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

您需要做的是告诉整个套件并行运行测试。这样,每个类的每个方法(不仅仅是@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. 中了解更多信息。

关于java - 如何并行运行 @Before 注释?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59460318/

相关文章:

Java 8 Stream 从返回值中添加新对象到列表

java - libGDX 一直说 JAVA_HOME 目录不正确

java - 线程的意外行为

character-encoding - AssertionError 的 IDEA 输出中的字符编码

java - 如何在 Selenium 中测试 "Remember Me"复选框功能

java - 通过 CLI : Could not find or load main class org. testng.TestNG 执行 testng.xml 时出错

java - Base64.encode() 不适用于大字节数组

java - "Serializable"类中的字段应该是 transient 或可序列化的鱿鱼 : S1948

c - 有没有一种无需重新编码即可并行运行 C/C++ 程序的简单方法?

c - 并行编程 : How can I apply 'MPI_Gather' or 'MPI_Scatter' instead of 'MPI_Isend' and 'MPI_Recv'