Как заставить Maven2 не тестировать классы, не помеченные @ Test, в папке с исходным кодом теста? - PullRequest
3 голосов
/ 09 декабря 2011

Только что получил странную ошибку. Работая над проектом с использованием JUnit и Maven 3.0.3, я создал в своей папке test / src / java один тестовый класс - ClassifierUtilTest.java, с @Test -аннотированными методами и вещами и два служебных класса, только для использования в тестовая среда (один с несколькими статическими методами для обхода частных областей видимости и один макет для тестируемого интерфейса).

Он хорошо работает в Maven 3.0.3 (mvn test) и в Eclipse 3.7 (запустить как / JUnit test), но когда кто-то еще попытался «mvn test» его с Maven 2.2.1, это не удалось. По-видимому, он пытался обработать эти классы утилит как тестовые классы и потерпел неудачу из-за «не @Test -аннотированных методов» и «более чем одного конструктора».

Это не ошибка JUnit (по крайней мере, не должно быть, зависимость maven одинакова, junit:junit:4.9), так что, похоже, это ошибка строго maven или maven-surefire-plugin. Мне было интересно, есть ли какой-нибудь широко известный обходной путь для Maven 2.2.1 для этой проблемы?

1 Ответ

12 голосов
/ 09 декабря 2011

maven-surefire-plugin по по умолчанию запускает все классы с префиксом или суффиксом Test (как у вас ClassifierUtilTest) и суффиксом TestCase.Просто измените имя на ClassifierTestUtil, и все будет в порядке.

Вы также можете исключить определенные файлы / каталоги в pom.xml, см. Включения и исключения из тестов :

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-surefire-plugin</artifactId>
  <version>2.11</version>
  <configuration>
    <excludes>
      <exclude>**/ClassifierUtilTest.java</exclude>
    </excludes>
  </configuration>
</plugin>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...