2016-10-04 2 views
2

Немного новичок здесь, но я пытаюсь использовать плагин Maven Failsafe для запуска тестов TestNG в моем проекте Java, используя задачу Maven в TFS 2015. I первоначально использовал плагин Surefire, но вместо этого хотел использовать Failsafe, а при небольшом изменении кода в соответствии с documentation for TestNG плагин Failsafe будет запускать тестовый класс TestNG вместо набора тестов (и сбой, потому что я использую параметры). При переключении на Surefire тесты выполняются как набор тестов и проходят.Maven Failsafe не подбирает тестовый набор testng, но Surefire делает

Я пробовал разные версии Failsafe и ничего не изменил. Есть ли что-то, что мне не хватает, что Failsafe должен распознать набор тестов?

 <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-failsafe-plugin</artifactId> 
      <version>2.19.1</version> 
      <configuration> 
       <suiteXmlFiles> 
        <suiteXmlFile>testng.xml</suiteXmlFile> 
       </suiteXmlFiles> 
      </configuration> 
     </plugin> 

(с безошибочным)

  <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-surefire-plugin</artifactId> 
      <version>2.13</version> 
      <configuration> 
       <suiteXmlFiles> 
        <suiteXmlFile>testng.xml</suiteXmlFile> 
       </suiteXmlFiles> 
      </configuration> 
     </plugin> 

(testng.xml)

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> 
<suite name="Suite"> 
    <parameter name="urlsource" value="https://httpbin.org/get"></parameter> 
    <test name="Test"> 
    <classes> 
     <class name="test.java.TestGenericRESTAPI"/> 
    </classes> 
    </test> <!-- Test --> 
</suite> <!-- Suite --> 
+0

Обязательные и отказоустойчивые должны иметь один и тот же код. Is surefire-2.19.1 работает? Отказоустойчиво-2.13 не работает? – juherr

+0

Surefire-2.13 работает для меня, но Failsafe 2.13 этого не делает. Похоже, что surefire-2.19.1 работает нормально, но безотказно - 2.19.1 нет. (Я также добавил в skipAfterFailureCount, и верный фрейм не удался корректно, в то время как отказоустойчивый преуспел). Я не уверен сейчас, если это проблема только для меня, если я не смогу получить безотказную работу для разных версий. – Sachi

+0

Вы заметили отказоустойчивость, по умолчанию, не проваливает сборку (цель «интеграция-тест»), но вам нужно запустить цель «проверить», если вы хотите сбой сборки? – juherr

ответ

1

Ваша конфигурация не запускать FAILSAFE для меня вообще, только Surefire. Согласно Failsafe docs я настроил цели:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-failsafe-plugin</artifactId> 
    <version>2.19.1</version> 
    <executions> 
     <execution> 
      <goals> 
       <goal>integration-test</goal> 
       <goal>verify</goal> 
      </goals> 
     </execution> 
    </executions> 
    <configuration> 
     <suiteXmlFiles> 
      <suiteXmlFile>testng.xml</suiteXmlFile> 
     </suiteXmlFiles> 
    </configuration> 
</plugin> 

Теперь оба Surefire и Отказоустойчивое выполнение тестов на mvn verify (и Отказоустойчивый передают параметры правильно). Если вы хотите, чтобы пропустить Surefire тесты, вы можете сделать это:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <version>2.18.1</version> 
    <configuration> 
     <skipTests>true</skipTests> 
    </configuration> 
</plugin> 

Теперь Surefire все еще работает на mvn verify, но на самом деле не запускать любые тесты. Я не знаю, как полностью отключить Surefire, поэтому любые предложения или улучшения приветствуются.

Обратите внимание, что ваша IDE может все же ссылаться на Surefire напрямую (NetBeans делает для меня). Некоторые настройки IDE могут помочь здесь.

+0

Спасибо за подробный ответ. Похоже, он по-прежнему вызывает класс. :( – Sachi

+0

@ Sachi, вы называли 'mvn verify' непосредственно из командной строки? Потому что проблема может быть в вашей конфигурации TFS (так же, как NetBeans делает то, как ее радует в моем случае). –

+0

Хм, интересно. что, спасибо. – Sachi

Смежные вопросы