Как запустить nunit-тесты с проектами asp.net 5, особенно с ReSharper?
Я занимаюсь разработкой приложения asp.net 5 для dnx451.
Проект asp.net 5 использует некоторые библиотеки с юнит-тестами, написанными для nunit 2.x. Поэтому разумным выбором для меня является использование nunit для тестирования проекта asp.net 5.
Когда я запускаю модульное тестирование в ReSharper, ReSharper сообщает "Test not run" с дополнительным сообщением "System.IO.FileNotFoundException: не удалось загрузить файл или сборку xxx ".
Оба nunit 2.6.4 и 3.0.0-beta-2 дают одинаковую ошибку.
Кто-нибудь успешно выполнил nunit тесты против проекта dnx?
4 ответа
Тесты DNX в настоящее время не поддерживаются ReSharper. Это совершенно новая модель исполнения, которая еще не была реализована для ReSharper. Я ожидаю увидеть поддержку, когда DNX и asp.net стабилизируются и будут близки к выпуску. Кроме того, я не верю, что nunit сама поддерживает запуск в качестве тестировщика DNX - у команды xunit есть отдельный проект для подключения к DNX: https://github.com/xunit/dnx.xunit
NUnit не поддерживает ядро DNX.
Следуйте этой проблеме, чтобы узнать, когда nunit добавляет поддержку dnx. https://github.com/nunit/nunit/issues/575
Надеемся, что, говоря "Особенно с ReSharper", вы подразумеваете, что хотите знать, как запускать тесты NUnit, и, если возможно, с помощью ReSharper. Тем не менее, вот как выполнить тесты NUnit для ASP.NET Core (ранее известный как ASP.NET 5) в Visual Studio без использования ReSharper:
- Добавьте новый проект и выберите Консольное приложение (.NET Core). Попытка использовать библиотеки классов в настоящее время сообщит об ошибке.
- Добавьте последнюю версию пакета NuGet для dotnet-test-nunit (убедитесь, что установлен флажок Включить предварительный выпуск, иначе вы не найдете его в канале NuGet)
- Добавьте последнюю версию пакета NUnit NuGet.
- Отредактируйте project.json и добавьте эту строку:
"testRunner": "nunit",
Теперь вы можете запустить свои тесты, выбрав Test - Run - All Tests в меню Visual Studio.
Ваш файл project.json должен выглядеть так:
{
"version": "1.0.0-*",
"buildOptions": {
"emitEntryPoint": true
},
"dependencies": {
"dotnet-test-nunit": "3.4.0-beta-1",
"ProjectUnderTest": "1.0.0-*",
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.0"
},
"NUnit": "3.4.1"
},
"testRunner": "nunit",
"frameworks": {
"netcoreapp1.0": {
"imports": "dnxcore50"
}
}
}
Похоже, что NUnit имеет (частичную) поддержку с v3.0.0-RC http://www.alteridem.net/2015/11/04/testing-net-core-using-nunit-3/