2010-05-11 3 views
14

Огромный проект тонны классов и каталогов.Структура каталогов модулей тестирования

Могу ли я сделать проект модульного тестирования зеркальным отображением этих каталогов или поместить их в корневой каталог?

Несколько досадно, чтобы изменения каталога и изменения имени класса были изменены дважды.

+0

Было бы полезно, если бы вы добавили язык, в котором вы работаете с тегами. – Jherico

+2

Почему бы не разместить unittests прямо в каталоге вашего проекта? – Stephen

ответ

17

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

Очевидно, вы не используете Java, или ваш тестовый код уже будет иметь ту же структуру пакета, что и тестируемый код, и вопрос будет спорным. (Не менее I не может себе представить, чтобы это делалось иначе.)

+1

Вторичный. Любая достойная среда IDE также облегчит рефакторинг каталогов и имен. – Jherico

+2

В зависимости от языка я бы поставил больше внимания на пакеты/модули/пространства имен, а не на каталоги. –

+0

@Gabriel: Согласен. Я хотел сделать это, но @zachary не указал язык. –

5

Я бы предпочел иметь модульные тесты в каталоге проекта, чтобы они физически были близки к коду, который они поддерживают. Каталог, содержащий модульные тесты для одного компонента/пакета, находящегося в каталоге этого компонента/пакета, в определенном каталоге test на том же уровне, что и каталог src. Это то, что я делаю для проектов C/C++ FWIW. Основная причина заключается в том, чтобы одновременно скомпилировать компонент и его модульные тесты, чтобы сделать модульные тесты видимыми (наши устаревшие компоненты не все имеют модульные тесты).

Таким образом, каждое изменение, внесенное в структуру каталогов, не оказывает никакого влияния на структуру тестовых каталогов, поскольку модульные тесты перемещаются вместе с производственным кодом. Наличие двух параллельных структур каталогов является формой дублирования для меня.

Смежные вопросы