TestNG:在运行时更改线程计数

时间:2014-10-24 22:01:02

标签: testng test-suite

假设我有一个可以并行或串行执行的套件。但是,这样做的决定一直持续到运行时。启动此套件的常用方法如下:

TestNG runner = new TestNG();
if (runInParallel()) {
    // set parallel mode too here
    runner.setThreadCount(2);
}
// ...
runner.run();

我现在想知道是否可以这样做,但内部有“设置线程计数”逻辑,例如ISuiteListner或其他合适的侦听器。如果我使用ISuiteListener,并使用其onStart()来操纵XmlSuite后面的ISuite并在那里设置线程数,那么在测试时它们会受到尊重吗?跑?或者,一旦您执行套件侦听器,您实际上已被锁定到已有的并发设置?

1 个答案:

答案 0 :(得分:2)

我在@BeforeSuite注释方法中做了类似于并行属性的东西并且它有效。

@BeforeSuite
public void beforeSuite(ITestContext context)
{
    context.getSuite().getXmlSuite().setParallel(System.getProperty("parallel", "false"));
}

因此,可以假设它应该适用于线程计数以太

context.getSuite().getXmlSuite().setThreadCount(10);