#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, которые могут быть полезны.