2014-10-24 3 views
2

Предположим, что у меня есть пакет, который может выполняться либо параллельно, либо последовательно. Однако решение сделать это остается до исполнения. Общий способ запуска этого набора будет что-то вроде:TestNG: Изменение количества потоков во время выполнения

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

Я теперь интересно, если это возможно, чтобы сделать то же самое, но с «установить количество потоков» логику внутри, скажем, в ISuiteListner или других подходящий слушатель. Если я должен был использовать ISuiteListener и использовать его onStart() для управления XmlSuite за ISuite и установить количество потоков там, будут ли они соблюдаться при выполнении тестов? Или дело в том, что после того, как вы выполняете прослушиватели пакетов, вы фактически заблокированы, какие настройки параллелизма уже существуют?

ответ

1

Я сделал что-то подобное в параллельном атрибуте в @BeforeSuite аннотированном методе, и он работает.

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

Таким образом, можно предположить, что он должен работать на нить подсчета эфира

context.getSuite().getXmlSuite().setThreadCount(10); 
Смежные вопросы