Maven / JUnit - Получите старую технику статического пакета junit для работы в Maven

Я переключаю проект с Ant на Maven. У меня есть модульные тесты в правильном месте, но по какой-то причине плагин maven surefire видит только около 136 (из 1136) тестов.

При использовании Ant мы использовали старый метод набора тестов:

public class GatherTests{
  public static Test suite(){
    ... add tests ...
    return testSuite;
  }
}

как наш бегун. Я не смог определить, как заставить это работать с помощью Surefire. Я использую junit 3.8.1 с Maven 2.0. Кто-нибудь знает возможно ли это? Одна вещь, которую я пробовал, это:

-Dtest=GatherTests

без везения. Многие из наших тестов существуют в классах, которые не наследуются непосредственно от junit.framework.TestCase, поэтому, возможно, у surefire возникают проблемы со их сбором. Сейчас я просмотрю журналы, чтобы увидеть, чего не хватает.

Спасибо, Тим.


person Tim Reynolds    schedule 17.11.2010    source источник
comment
Я изучил его подробнее, и он пропускает тесты, которые напрямую расширяют TestCase. Он всегда пропускает одни и те же, но они ничем не отличаются от других, которые включаются. Я заметил, что если пакет включает в себя несколько классов модульного тестирования, surefire запускает только один из них. Однако другие пакеты, включающие только один класс, пропускаются.   -  person Tim Reynolds    schedule 17.11.2010


Ответы (1)


Конечно, я понял это вскоре после публикации этого.

Страница плагина Maven Surefire

Там написано:

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

  • «*/Test.java» — включает все его подкаталоги и все имена файлов Java, начинающиеся с «Test».
  • «**/*Test.java» — включает все его подкаталоги и все имена файлов Java, которые заканчиваются на «Test».
  • «**/*TestCase.java» — включает все его подкаталоги и все имена файлов Java, которые заканчиваются на «TestCase».

Тесты, которые не выполнялись, соответствовали шаблону **/*Tests.java. Я добавил правило включения, и теперь все они работают.

person Tim Reynolds    schedule 17.11.2010