Организация тестов JUnit в проектах - PullRequest
38 голосов
/ 08 октября 2008

Что вы считаете лучшей практикой для организации тестов JUnit в проекте и почему? Например, вы держите свои тесты рядом с классами, которые они тестируют? Вы помещаете их в отдельную, но параллельную структуру пакета? Вы полностью используете другую организационную стратегию?

Ответы [ 5 ]

37 голосов
/ 08 октября 2008

Я использую отдельную, но параллельную структуру пакета по нескольким причинам.

  1. Он поддерживает организацию тестов так же, как и код приложения.
  2. Я могу легко собрать только файлы приложений для распространения.
  3. Тестовый код все еще имеет доступ к моему коду приложения.
  4. Это не так загромождено, как смешивание тестового кода с кодом приложения.
8 голосов
/ 08 октября 2008

Я поместил свои тесты в отдельную, но похожую / параллельную структуру пакета. Вот как Maven любит вещи, и это хорошо работает и с IDE. Мне это нравится, потому что мой тестовый код не перепутан с кодом приложения, но я все еще могу получить доступ к частным пакетам с целью проверки и проверки состояния.

5 голосов
/ 08 октября 2008

Просто используйте Maven . С помощью maven вы можете создать структуру по умолчанию для вашего проекта:

mvn archetype:create -DgroupId=com.yoyodyne -DartifactId=UberApp

Это создаст Стандартный макет каталога Maven , содержащий пространство для модульных тестов, а также ваш основной проект. Используя maven, вы можете запустить модульные тесты, не упаковывая их в jar, и вы можете создать jar, содержащий только ваше приложение. Вы также можете иметь разные пути к классам и разные зависимости для времени выполнения, тестирования и компиляции.

Мне очень неприятно видеть, что так мало людей здесь на самом деле используют Maven (или, по крайней мере, Ant, хотя я предпочитаю Maven для обработки зависимостей).

3 голосов
/ 23 декабря 2010

Я уважаю структуру проекта Maven, даже когда я не использую Maven в проекте, просто потому, что я к этому привык. Рекомендуется использовать отдельную исходную папку, которая учитывает ту же структуру пакета, что и ваша основная исходная папка.

Источники, предназначенные для ваших тестов (использует те, которые вы кодируете только для использования в тестах), должны быть помещены туда, и если вы намереваетесь использовать их с кодом времени выполнения приложения, переместите его в основную исходную папку. Идея состоит в том, чтобы отделить друг от друга, так же, как вы повышаете эффективность, разделяя постоянство и контроль, например,

1 голос
/ 08 октября 2008

как сказал Билл Ящерица,

помогает иметь параллельную структуру, чтобы 1) Я могу отправить src.zip или src.tar.gz и пропустить юнит-тесты 2) На уровне системы контроля версий вы можете установить, кто изменяет исходный код, а кто изменяет только юнит-тесты

"Неудобство"
Вы не можете запечатать свой JAR-файл, если исходный и модульный тесты находятся в одном пакете (то есть вам нужно удалить модульные тесты перед подготовкой .JAR и запечатать его)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...