Каков наилучший способ структурировать юнит-тесты в решениях? - PullRequest
1 голос
/ 11 января 2010

Я работаю над проектом C # .net с использованием Visual Studio 2008, поэтому мой вопрос специально для этого случая. Тем не менее, вопрос должен быть таким же, как и во многих других средах, поэтому я буду рад услышать мнения людей в подобных средах.

Мое решение организовано в несколько проектов. Все из которых имеют некоторые юнит-тесты. Существует несколько способов структурирования тестов, и я чувствовал, что лучшим способом справиться с этим было бы иметь один соответствующий " .Tests " - project pr project. То есть У меня есть проекты:

MyApp.Model
MyApp.Utils

Предоставление мне соответствующих проектов для испытаний;

MyApp.Model.Tests
MyApp.Utils.Tests

Это очень хорошо объединяет все тесты, которые объединяются в один проект, давая одну сборку для каждой "группы" тестов. Я чувствовал себя комфортно, потому что это лучший способ на некоторое время, но по мере роста приложения я получаю 2 новых проекта вместо одного каждый раз, когда добавляю новый. Теперь я думаю, что это начинает грязно, и я собираюсь добавить один единственный проект MyApp.Tests, чтобы провести все мои тесты. Тесты все еще могут быть хорошо структурированы с хорошей файловой структурой внутри этого проекта.

Итак, как люди структурируют свои тесты?

Ответы [ 3 ]

2 голосов
/ 11 января 2010

Для каждого проекта отдельный тестовый проект, т.е. Project.Tests. Затем я сохраняю все свои тестовые проекты в одной Папке решений , т.е. "Тестовые проекты".

1 голос
/ 11 января 2010

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

Если у вас проблема с большим количеством проектов, вам следует активнее использовать папки. Сгруппируйте проекты (и их тесты) в хорошо именованные и хорошо структурированные папки.

1 голос
/ 11 января 2010

1 проект для ALL испытаний.

Затем идет интеграция папок и пространств имен / unit / regression => затем project1 / project2 / project2.

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

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