Как настроить NUnit для запуска модульных тестов моего проекта? - PullRequest
14 голосов
/ 20 октября 2010

Я начинаю использовать NUnit для написания тестовых примеров в C # с Visual Studio 2010 на .NET 4.0.Я хочу использовать NUnit для проверки публичных функций .dll (проекта библиотеки классов C #).Как настроить NUnit для работы с моим проектом?

  1. Должен ли я добавить код NUnit в тот же проект библиотеки классов для проверки или добавить отдельный проект в то же решениедля тестовых случаев NUnit?Какова лучшая практика?

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

  3. Если мне нужно проверить исполняемый файл и не проект библиотеки классов, есть ли какие-либо изменения в процессе и / или проектах?

Ответы [ 4 ]

15 голосов
/ 20 октября 2010

Re 2

Как правило, держите ваш [dll тестового примера] отдельно от вашего [dll бизнес-логики]. Ваша бизнес-логика DLL не должна включать никаких знаний о NUnit, чтобы разделить проблемы и упростить развертывание / обслуживание.

В вашем тестовом примере dll должна содержаться ссылка на NUnit и dll вашей бизнес-логики.

Вам не нужно совместно использовать пространство имен. Вы можете открыть внутренние члены вашей dll бизнес-логики для dll тестового примера, изменив файл AssemblyInfo.cs dll бизнес-логики, чтобы представить внутренние компоненты dll тестового примера. Это позволяет вам сохранить желаемую видимость в dll бизнес-логики.

Re 3

Ваши тестовые примеры должны быть в dll (то есть в проекте библиотеки классов). Вы можете загрузить это непосредственно в пользовательский интерфейс NUnit или использовать консольный NUnit в среде интеграции для автоматического запуска ваших тестов.

Как мне это сделать:

  • открытый проект библиотеки классов для теста свойства, вкладка «Отладка»
  • установить для открытия с помощью внешней программы: укажите это на nunit.exe
  • установить аргументы командной строки в Точное название вашего теста dll: MyTests.dll
  • рабочий каталог: просто нажмите кнопка с многоточием, и она будет предварительно выберите тестовый выход dll каталог для текущей сборки конфигурации
  • установить тестовый проект как запуск проекта по умолчанию в решение; таким образом, всякий раз, когда вы нажмете F5 (или кнопка «Play»), NUnit будет придумайте свои обновленные тесты предустановленный - очень удобно и быстро.

Удачи - также попробуйте тестовый проект типа avl. в Visual Studio это очень похоже на NUnit. Я все еще предпочитаю NUnit, но во время обучения полезно попробовать различные варианты.

8 голосов
/ 20 октября 2010
  1. Юнит-тесты должны проходить в отдельном тестовом проекте под тем же решением.
  2. Да, сделайте это проектом библиотеки классов. Если вы хотите запустить тесты в NUnit, этот учебник может показать вам, как .

Что касается вашего комментария: Когда вы устанавливаете NUnit.exe в качестве запускаемого по умолчанию исполняемого файла для библиотеки классов тестирования (той, которая содержит ваши модульные тесты), вы сообщаете NUnit, какую DLL вы хотите протестировать; после первого раза он будет помнить, с каким проектом вы тестировали.

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

Опять же, учебник, который я перечислил, проходит через все это.

2 голосов
/ 20 октября 2010

Я бы добавил отдельный тестовый проект для тестового кода и ссылки на NUnit и тестируемую библиотеку из этого.Это должна быть библиотека классов, и она запускается исполнителями тестов NUnit, например nunit-console test_assembly.dll - см. Документацию .

2 голосов
/ 20 октября 2010

2: Вы должны поместить все тесты NUnit в отдельный проект в одно и то же решение. Сборка проекта создает тесты, и наоборот, так как, когда вы работаете над этим проектом (вы делаете это, верно?), Вы можете просто запустить тесты, и он соберет все необходимое для этого. 3: библиотека классов. Он не должен быть запущен Windows, если вы используете NUnit; вам просто нужно использовать тест-бегун.

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