День добрый.
Чувствую, что затрагиваю местами избитую тему. Также понимаю, что у многих участников форума появится желание “сделать все по-другому, более правильно”. В общем, предисловие я сказал, к нападкам готов… сам деликатный момент:
Кол-во сьютов перевалило за 50 штук еще в середине этой весны. Время прогона тестов увеличилось с 2 часов (год назад) до 9 часов на сейчас. Сама система тестирования вылизана и отлажена - работает безупречно. Теперь появилась нужда распараллелить эту кучу кода - тестовая машина имеет отличное железо и спокойно потянет тестирование в 4 потоков (при экспериментах тянула до 6 спокойно). Однако после изучения большого кол-ва материалов в сети на эту тему так и не удалось все правильно собрать. Главная проблема в необходимости параллелить сьюты, а не методы/классы. С этим прекрасно справился этот простой код:
public class MultipleXmls {
public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException {
TestNG testng = new TestNG();
testng.setXmlSuites((List <XmlSuite>)(new Parser("C:\\Users\\S-Kerrigan\\WSI\\Java_ProjectsM_V.003\\Sets\\Suits\\TEST.xml").parse()));
testng.setSuiteThreadPoolSize(4);
testng.run();
}}
В самом Maven запуск класса веду через
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<configuration>
<mainClass>Test.MultipleXmls</mainClass>
</configuration>
</plugin>
Однако при запуске через мавен теряется вся многопоточность. Как исправить?
*Варианты с хаб/нодами, сторонними нагромождениями дополнительных фреймворков заранее не подходят по ряду причин.