假设我有一个可以并行或串行执行的套件。但是,这样做的决定一直持续到运行时。启动此套件的常用方法如下:
TestNG runner = new TestNG();
if (runInParallel()) {
// set parallel mode too here
runner.setThreadCount(2);
}
// ...
runner.run();
我现在想知道是否可以这样做,但内部有“设置线程计数”逻辑,例如ISuiteListner
或其他合适的侦听器。如果我使用ISuiteListener
,并使用其onStart()
来操纵XmlSuite
后面的ISuite
并在那里设置线程数,那么在测试时它们会受到尊重吗?跑?或者,一旦您执行套件侦听器,您实际上已被锁定到已有的并发设置?
答案 0 :(得分:2)
我在@BeforeSuite注释方法中做了类似于并行属性的东西并且它有效。
@BeforeSuite
public void beforeSuite(ITestContext context)
{
context.getSuite().getXmlSuite().setParallel(System.getProperty("parallel", "false"));
}
因此,可以假设它应该适用于线程计数以太
context.getSuite().getXmlSuite().setThreadCount(10);