我有几个测试类别,每个类别都带有@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>
存在的问题是您要为每个测试指定并行性。您基本上是在告诉每个测试并行运行其方法。
您需要做的是告诉整个套件并行运行测试。这样,每个类的每个方法(不仅是@Before注释)都将并行运行。
您可以通过从测试中删除并行化并添加到套件中来做到这一点:
<suite name = "TestAllPersonTypes" parallel="methods" thread-count="10">
您可以在testNG docs for parallelism.中获得更多信息,>