Maven-surefire-plugin 2.19 important updates

Рад сообщить, что разработчики maven-surefire-plugin весьма приятно порадовали своим последним апдейтом. Сторонники TestNG могут ликовать нескольким долгожданным фичам:

  • Наконец-то добавили параллелизацию по suites. Отныне и, надеюсь, навеки следующая конфигурация будет работать:
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.19</version>
        <configuration>
          <suiteXmlFiles>
            <file>src/test/resources/testng1.xml</file>
            <file>src/test/resources/testng2.xml</file>
          </suiteXmlFiles>
          <properties>
            <property>
              <name>suitethreadpoolsize</name>
              <value>2</value>
            </property>
          </properties>
        </configuration>
      </plugin>
  • Добавили поддержку фильтрации тестов по имени:
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.19</version>
        <configuration>
          <suiteXmlFiles>
            <file>src/test/resources/suite.xml</file>
          </suiteXmlFiles>
          <properties>
            <property>
              <name>testnames</name>
              <value>testGroup1,testGroup3</value>
            </property>
          </properties>
        </configuration>
      </plugin>

Сам suite.xml:

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Some test suite">
  <test name="testGroup1">
    <classes>
      <class name="somtTest1" />
    </classes>
  </test>
  <test name="testGroup2">
    <classes>
      <class name="someTest2" />
    </classes>
  </test>
  <test name="testGroup3">
    <classes>
      <class name="someTest3" />
    </classes>
  </test>
</suite>

При такой конфигурации будут выполнены только testGroup1 и testGroup3, а testGroup2 просто проигнорится.

  • Фанатам глубокого логирования добавили verbose с возможностью включения debug mode (-1).
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.19</version>
        <configuration>
          <properties>
            <property>
              <name>surefire.testng.verbose</name>
              <value>10</value>
            </property>
          </properties>
        </configuration>
      </plugin>

С полным списком изменений можно ознакомиться на официальной страничке плагина. Не забывайте также обновить и сам TestNG до версии 6.9.8.

Со своей колокольни отмечу, что с первыми двумя фичами теперь можно гораздо гибче управлять конфигурацией в контексте CI и масштабирования.

10 лайков

Небольшой апдейт: с testnames был найден баг уровня testng. В версии 6.9.8 нет поддержки вложенных suites. Поиск осуществляется исключительно в рутовом suite. Баг уже пофикшен. Для нетерпеливых, можно залить версию 6.9.9-SNAPSHOT из соответствующего репозитория.