Структурирование проектов и решений в системе контроля версий Team Foundation Server (TFS) - Хранение модульных тестов
ОГЛАВЛЕНИЕ
Хранение модульных тестов
Модульные тесты можно сохранять в папке UnitTests и располагать ее на одном уровне с папкой Source, как показано ниже:
…
/MyApp1 // Содержит файл MyApp1.sln
/Source // Папка-контейнер всего исходного кода
/ClassLibrary1 // Содержит ClassLibrary1.csproj
/MyApp1Web // Содержит Default.aspx
/UnitTests // Папка-контейнер модульных тестов
/ClassLibrary1Tests // Содержит проект тестирования и исходный код тестов
/MyApp1WebTests // Содержит проект тестирования и исходный код тестов
При таком сценарии модульные тесты выносятся отдельно от всего исходного кода. Однако происходит это за счет совместимости на уровне проектов. Вот альтернативная структура:
/MyApp1
/Source
/ClassLibrary1
/ClassLibrary1Tests
/MyApp1Web
/MyApp1WebTests
За и против каждого из подходов:
UnitTests на одном уровне с папкой Source
За: Все модульные тесты находятся в одном месте.
За: Поставляемый код располагается отдельно от кода, который поставляться не будет.
За: Процесс сборки может без труда выполнить все модульные тесты во всех проектах.
Против: Разработчикам сложнее выполнять модульное тестирование только для своего проекта.
Против: Модульные тесты не включаются в ответвления папки Source.
UnitTests в каждом проекте
За: Разработчики могут без труда выполнять модульные тесты для отдельного проекта.
За: При ветвлении, папки с модульными тестами включаются в структуру папок создаваемой ветви. Таким образом, модульные тесты могут сохранять тесную связь с исходным кодом в каждой ветви.
Против: Происходит смешение поставляемого кода и кода тестов в папке исходного кода.
Против: Обычно сложнее выполнить модульное тестирование сразу по всем проектам во время сборки.