maven и модульное тестирование - объединение плагина maven surefire и плагина testNG eclipse

не могли бы вы поделиться своим способом модульного тестирования в eclipse? Используете ли вы плагин surefire, m2eclipse и maven или только плагин testNG eclipse? Вы комбинируете эти варианты?

Я использую testNG + maven surefire-plugin, и год назад я использовал плагин testNG eclipse, чтобы видеть результаты в представлении testNG. Затем я начал использовать Maven, но когда я выполняю «тестовую фазу maven» с помощью m2eclipse, есть только консольный вывод и верные отчеты, которые я могу проверить в браузере и выбрать, какой набор тестов, тест или метод тестирования можно настроить только через testng.xml.

С другой стороны, если вы используете только плагин surefire и у вас есть определенные настройки, касающиеся пути к классам и т. д., на которые вы полагаетесь, то запуск тестов через плагин testNG eclipse не обязательно должен быть совместим с вашим кодом. При использовании плагина surefire путь к классам отличается — target/test-classes и target/classes — от использования плагина testNG, который использует путь к классам проекта.

Как вы относитесь к тому, о чем я только что говорил?

Можно ли синхронизировать "maven test" с помощью m2eclipse и плагина surefire С плагином testNG eclipse и представлением?

EDITED: мне также интересно, почему выходная папка проекта Maven («путь сборки Java») target/classes для src/main и src/test, тогда как плагин surefire создает два местоположения target/test-classes и target/classes

Большое спасибо за ваше мнение.


person lisak    schedule 26.02.2011    source источник


Ответы (3)


Лиза,

Вы можете настроить подключаемый модуль TestNG Eclipse для «просмотра» выходного каталога теста. Направьте его на target/surefire-reports, и вы должны увидеть само обновление представления TestNG через несколько секунд после завершения сборки Maven.

person Cedric Beust    schedule 26.02.2011
comment
Это не сработало, Седрик... Я поместил абсолютный путь target/surefire-reports в выходной каталог и проверил параметр пути вывода Absolut, и после завершения фазы теста maven в представлении testNG ничего не появляется... - person lisak; 27.02.2011
comment
stackoverflow.com/ вопросы/5130579/ - person lisak; 27.02.2011
comment
Я только что выпустил новую версию подключаемого модуля Eclipse, которая должна решить проблему, с которой вы столкнулись. - person Cedric Beust; 01.03.2011

Я вижу два преимущества использования плагина surefire:

  • Использование плагина eclipse работает только тогда, когда все участники проекта используют eclipse.
  • Плагин Surefire может запускаться из сборки, сделанной с сервера непрерывной интеграции ("jenkins").

И затем, если у вас есть более продолжительные наборы тестов (производительности), вы, вероятно, не хотите «блокировать» свою IDE во время их выполнения.

person Heiko Rupp    schedule 26.02.2011
comment
Спасибо, Хайко, меня больше интересовало, как совместить использование обоих. Я знаю, каковы преимущества плагина surefire, но я также знаю, каковы недостатки неиспользования плагина testNG eclipse. Это ужасно неэффективно - person lisak; 26.02.2011
comment
Лиза, посмотри мой комментарий, я думаю, он описывает именно то, что тебе нужно. - person Cedric Beust; 27.02.2011

Я не думаю, что это правда, что вы говорите с другим путем к классам во время выполнения, я только что проверил себя как путь к классам maven, так и тот, когда тест запускается через плагин testNG eclipse, и оба они одинаковы. Я думаю, что плагин m2eclipse позаботится об этом. То же самое даже для тестирования junit.

Так что, на самом деле, нет никаких ограничений на использование плагина testNG eclipse для разработки и плагина surefire, например, для непрерывной интеграции, как упоминает Хайко Рупп. По крайней мере, у меня никогда не было никаких проблем с этим.

Просто используйте оба, как вам нравится, ура!

person lisak    schedule 26.02.2011