2013-05-05 5 views
16

Ok- Я расчесывал S/O и многие другие, и нашел все другие связанные должности и следил за всеми упомянутыми предложениями, но в конце концов, отказоустойчивое пропускает мои тесты.Maven отказоустойчивый не выполняет тесты

Мой JUnit тест здесь: MyModule/SRC/главная/тест/Java/ClientAccessIT.java

Я вприпрыжку безошибочный, потому что нет модульных тестов в этом модуле:

<!-- POM snippet --> 
<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <configuration> 
    <skip>true</skip> 
    </configuration> 
</plugin> 

И Я пытаюсь запустить тесты интеграции с отказоустойчивых:

<!-- POM snippet --> 
<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-failsafe-plugin</artifactId> 
    <executions> 
     <execution> 
      <id>run-tests</id> 
      <phase>integration-test</phase> 
      <goals> 
       <goal>integration-test</goal> 
       <goal>verify</goal> 
      </goals> 
     </execution> 
    </executions> 
</plugin> 

Когда я: МВН проверить

Я вижу это:

[INFO] --- maven-failsafe-plugin:2.14.1:integration-test (run-tests) @ rest-services-test --- 

------------------------------------------------------- 
T E S T S 
------------------------------------------------------- 

Results : 

Tests run: 0, Failures: 0, Errors: 0, Skipped: 0 

провел последние 4 1/2 часа соскабливать, оцененная помощь. Единственное, что, возможно, стоит упомянуть - у меня есть настройка груза и срывание контейнера для кота. Кто-нибудь видит вопиющую проблему?

D

ответ

13

Необходимо переименовать свой тестовый класс.

Вы можете найти имена плагина ищет по умолчанию в the documentation, как указало @acdcjunior:

По умолчанию Отказоустойчивого плагин будет автоматически включать все тестовые классы со следующими подстановочными шаблонами:

  • «**/IT*.java» - включает все его подкаталоги и все имена файлов java, начинающиеся с «IT».
  • «**/*IT.java» - включает все его подкаталоги и все имена файлов java, которые заканчиваются на «IT».
  • «**/*ITCase.java» - включает все его подкаталоги и все имена файлов java, которые заканчиваются на «ITCase».
+3

Это не выглядит так: http://maven.apache.org/surefire/maven-failsafe-plugin/examples/inclusion-exclusion.html - он говорит, что шаблоны по умолчанию: '**/IT * .java' , '**/* IT.java',' **/* ITCase.java'. – acdcjunior

+1

@acdcjunior избил меня; вот прямая ссылка на соответствующую страницу документации: https://maven.apache.org/surefire/maven-failsafe-plugin/integration-test-mojo.html#includes – kryger

+0

"**/* IT.java" - включает все его подкаталогов и всех java-файлов, которые заканчиваются на «IT». Разве ClientAccessIT.java не соответствовал бы квалификациям этого шаблона? –

8

У меня была аналогичная проблема. Если нет тестовых классов, скомпилированных для целевых/тестовых классов, то проверьте свой файл pom и убедитесь, что упаковка не является «pom».

+0

Спасибо. Это была проблема для меня. Совсем не очевидно! –

5

У меня также была аналогичная проблема, но для упаковки мне нужен был «pom». Убедитесь, что ваши тестовые исходные файлы компилируются и добавляются к .../целевой/тест-классов папку с помощью Maven-компилятора-плагин:

 <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>${maven.compiler.version}</version> 
      <executions> 
       <execution> 
        <phase>test-compile</phase> 
        <goals> 
         <goal>testCompile</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
+0

Странно, что у меня была упаковка, но тестовые классы не были скомпилированы. Благодарю. –

+0

Это тоже моя проблема, как только я включил тесты интеграции плагинов компилятора! – Leon

5

Для нескольких модулей проектов, ребенок проект должен иметь плагин, объявленный как следующий,

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-failsafe-plugin</artifactId> 
</plugin> 

версия наследуется от родительского пом. Без описанного выше, плагин в родительском помпе не будет работать.

+0

Это решение для меня. отказоустойчивость была определена в родительском ПОМ. – Amoeba

5

Ваши тесты не находятся в каталоге источников тестовых источников по умолчанию src/test/java.См:

https://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html

MyModule/SRC/главная/тест/Java/ClientAccessIT.java

должно быть:

MyModule/SRC/тест/Java/ClientAccessIT.java

Вы также можете обновить свой файл pom (если вам действительно нужны тесты, чтобы жить в основном), чтобы включить:

<build> 
    <testSources> 
     <testSource> 
      <directory>src/main/test</directory> 
     </testSource> 
    </testSources> 
</build> 

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

  • Нет связанных вопросов^_^