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