Вы ставите юнит-тесты в том же проекте или другом проекте? - PullRequest
129 голосов
/ 07 декабря 2008

Вы помещаете модульные тесты в один и тот же проект для удобства или вы помещаете их в отдельную сборку?

Если вы поместите их в отдельную сборку, как мы, в результате мы получим несколько дополнительных проектов. Он отлично подходит для модульного тестирования во время кодирования, но как выпустить приложение без всех этих дополнительных сборок?

Ответы [ 12 ]

0 голосов
/ 06 ноября 2010

Я действительно вдохновлен структурой модульного тестирования библиотеки Flood NN Роберта Лопеса. Он использует разные проекты для каждого отдельного тестируемого модуля и имеет одно решение, содержащее все эти проекты, а также основной проект, который компилирует и выполняет все тесты.

Аккуратная вещь - это также макет проекта. Исходные файлы находятся в папке, но папка для проекта VS находится ниже. Это позволяет создавать разные подпапки для разных компиляторов. Все проекты VS поставляются с кодом, поэтому любой может легко выполнить любой или все модульные тесты.

0 голосов
/ 24 марта 2009

Отдельные проекты, хотя я спорю с собой, должны ли они использовать один и тот же SVN. На данный момент я даю им отдельные svn-репозитории, один из которых называется

.

«MyProject» - для самого проекта

и один называется

«MyProjectTests» - для тестов, связанных с MyProject.

Это довольно чисто и имеет то преимущество, что коммиты в проект и коммиты в тестах совершенно разные. Это также означает, что при необходимости вы можете передать svn проекта, не выпуская тесты. Это также означает, что вы можете иметь каталоги branch / trunk / tag для ваших тестов и для вашего проекта.

Но я все больше склоняюсь к тому, чтобы в каждом проекте было что-то похожее на следующее:

MyProject
|\Trunk
| |\Code
|  \Tests
|\Tags
| |\0.1
| | |\Code
| |  \Tests
|  \0.2
|   |\Code
|    \Tests
\Branches
  \MyFork
   |\Code
    \Test

Мне было бы интересно узнать, что другие люди думают об этом решении.

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