Как настроить NUnit для запуска тестов на модуле проекта?

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

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

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

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

Ответы

Ответ 1

Re 2

Как правило, держите [dll test case] отдельно от вашей [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 (или кнопка "Воспроизвести" ), NUnit будет придумайте свои обновленные тесты предустановленный - очень удобный и быстро.

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

Ответ 2

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

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

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

Опять же, в этом уроке я перечисляю все это.

Ответ 3

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

Ответ 4

Я бы добавил отдельный тестовый проект для тестового кода и ссылки NUnit и тестируемой библиотеки. Он должен быть библиотекой классов, и он запускается с помощью NUnit test runner (s), например. nunit-console test_assembly.dll - см. документацию .