2017-02-13 10 views
0

У меня есть два набора тестов: A.xml и B.xml. Вот пример одного из них.Плагин Maven surefire запускает testuite более одного раза

<!-- URL Details --> 
<parameter name="applicationHostname" value="localhost" /> 
<parameter name="applicationProtocol" value="http" /> 
<parameter name="applicationPort" value="8080" /> 

<parameter name="testDelay" value="0" /> 

<test verbose="2" name="TestSuiteA" annotations="JDK" 
    preserve-order="true"> 
    <parameter name="testDataSource" value="Data.json" /> 
    <classes> 
     <class name="package.SuiteConfiguration" /> 
     <class 
      name="package.functionalTestAppStart.AppStarter" /> 
    </classes> 
</test> 

Здесь AppStarter является springboot приложение, которое получает сигнал.

Вот мой соответствующий фрагмент pom.xml

<plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-failsafe-plugin</artifactId> 
      <version>2.19.1</version> 
       <executions> 
        <execution> 
        <id>IT</id> 
         <phase>test</phase> 
         <goals> 
          <goal>integration-test</goal> 
         </goals> 
         <configuration> 
       <skip>false</skip> 
        <suiteXmlFiles> 
           <suiteXmlFile>src/test/resources/suites/FT_TEST_SUITE.xml</suiteXmlFile> 
        </suiteXmlFiles> 
       </configuration> 
       </execution> 
        <execution> 
        <id>verify</id> 
         <phase>verify</phase> 
         <goals> 
          <goal>verify</goal> 
         </goals> 
       </execution> 
       </executions> 
     </plugin> 

Здесь FT_TEST_SUITE.xml является родительский набор тестов, который просто запускает два других тест-люкс.

<suite-files> 
     <suite-file path="TESTSUITE_A.xml" /> 
     <suite-file path="TESTSUITE_B.xml" /> 
    </suite-files> 

Когда я строю свой проект maven «mvn clean install», testuites запускается 3 раза. Как решить эту проблему? Спасибо!

+0

Почему вы используете файлы пакета? Почему бы не использовать соглашение об именах и позволить отказоустойчивому плагину выполнять свою работу. – khmarbaise

+0

@khmarbaise Для моего варианта использования требуется, чтобы было настроено несколько файлов и ввод данных testdata, которые собираются внести вклад в тестовый класс. –

ответ

0

Я нашел решения с небольшим количеством изменений. В failsafe_version изменения в версию 2.13 и изменение фазы к интеграционных-тесту сделали работу. Вот мой обновленный фрагмент POM.xml.

<plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-failsafe-plugin</artifactId> 
      <version>2.13</version> 
       <executions> 
        <execution> 
        <id>IT</id> 
         <phase>integration-test</phase> 
         <goals> 
          <goal>integration-test</goal> 
         </goals> 
       <configuration> 
      <suiteXmlFiles> 
     <suiteXmlFile>src/test/resources/suites/FT_TEST_SUITE.xml</suiteXmlFile> 
      </suiteXmlFiles> 
      </configuration> 
       </execution> 
        <execution> 
        <id>verify</id> 
         <phase>verify</phase> 
         <goals> 
          <goal>verify</goal> 
         </goals> 
       </execution> 
       </executions> 
     </plugin> 

Спасибо за все ваши ответы!

0

Переместить раздел конфигурации в конфигурацию зависимостей и удаление расстрелов на всех (потому что новые версии Spring ботинка уже определяют такие параметры по умолчанию):

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-failsafe-plugin</artifactId> 
    <version>2.19.1</version> 
    <configuration> 
     <suiteXmlFiles> 
      <suiteXmlFile>src/test/resources/suites/FT_TEST_SUITE.xml</suiteXmlFile> 
     </suiteXmlFiles> 
    </configuration> 
</plugin> 
+0

Я пробовал это на первом месте. Набор тестов вообще не срабатывал. Просто сборка прошла успешно. –