Как запустить 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:

  1. Добавьте новый проект и выберите Консольное приложение (.NET Core). Попытка использовать библиотеки классов в настоящее время сообщит об ошибке.
  2. Добавьте последнюю версию пакета NuGet для dotnet-test-nunit (убедитесь, что установлен флажок Включить предварительный выпуск, иначе вы не найдете его в канале NuGet)
  3. Добавьте последнюю версию пакета NUnit NuGet.
  4. Отредактируйте 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/

Другие вопросы по тегам