Как запустить один тестовый пакет и его подпакеты в eclipse?

#java #eclipse #unit-testing #maven #junit

#java #eclipse #модульное тестирование #maven #junit

Вопрос:

У меня есть проект Java / Maven, мой тест находится в src / test / java. Там у меня есть интеграция двух пакетов и объединение каждого с подпакетами. Я хотел бы запустить все тесты внутри модульного пакета и его подпакетов.

Я использую JUnit4 и Eclipse Kepler SR2.

Я знаю, что при щелчке правой кнопкой мыши -> выполнить, как он должен выполняться, но почему-то Eclipse не находит никаких тестов.

Это работает:

  • запуск каждого теста отдельно
  • запуск всех тестов, щелкнув правой кнопкой мыши на src/test/java -> выполнить как.
  • запуск только модульных тестов с помощью mvn test (с использованием плагина surefire)

Но я хочу использовать какой-нибудь плагин codecoverage для eclipse, и для этого мне нужно запускать тесты в eclipse без интеграционных тестов. И это не проблема инструмента покрытия, vanillia, запускаемый как junit-тест, также не работает.

Тестовые классы компилируются в target / test-classes . И они есть :-/

Итак, какие-либо предложения, что вызывает это?

Редактировать:

Хорошо, похоже, что eclipse выполняет тесты только непосредственно в выбранном пакете. Как также выполнять тесты в подпакетах?

Ответ №1:

Я не уверен в специфике eclipse, но вы могли бы попробовать набор тестов и настроить его для запуска. Возможно, на него легче указать, чем на пакет.

 @RunWith(Suite.class)
@SuiteClasses({
    unit.OneClass.class, 
    unit.TwoClass.class
})
public class UnitTestSuite {
  

и т. д

Ответ №2:

То, что вы пытаетесь сделать (запустить все тесты в пакете, щелкнув по нему правой кнопкой мыши), должно работать в принципе. Конечно, для меня в Eclipse Kepler SR2.

Если он не работает, предположительно, причина в одном из:

  • старая версия Eclipse
  • поврежденная установка
  • поврежденный проект
  • неправильные настройки пути к классам
  • некоторое несоответствие между junit3 / 4
  • нажатие на неправильную вещь

Комментарии:

1. Я использую Eclipse Kepler SR2. Сам проект запускается, отлично строится с maven. Нажатие на неправильную вещь, это определенно не XD

2. Под «project» и «classpath» я подразумеваю файлы .project и .classpath, которые eclipse использует для хранения конфигурации проекта Java. Maven никогда не будет их читать (с помощью m2e он будет необязательно записывать их). Так что, если он работает в maven, это повышает вероятность возникновения проблемы.

3. .classpath и .project выглядят нормально. В другом проекте я могу выполнить в пакете…

Ответ №3:

Вы можете попробовать использовать cobertura. У вас есть проект maven, поэтому с помощью команды MAVEN mvn cobertura:cobertura на уровне проекта генерирует покрытие кода в /target/site/cobertura/index.html

Однако есть также имена плагинов, такие как eclemma, которые могут быть полезны.