Я пытаюсь запустить WebApp для использования с NancyFx в проекте .NET Core 2.0.
Пакет, который я добавил для решения, это
Microsoft.AspNet.WebApi.OwinSelfHost
, который устанавливает его зависимости:
Microsoft.AspNet.WebApi.Client
Microsoft.AspNet.WebApi.Core
Microsoft.AspNet.WebApi.Owin
Microsoft.Owin
Microsoft.Owin.Host.HttpListener
Microsoft.Owin.Hosting
Newtonsoft.Json
Owin
Я также добавил:
Nancy
Nancy.Owin
Мой проект относится к типу "xUnit Test Project (.NET Core)".
Начиная с моего тестового класса, мы имеем:
public class MyIntegrationTests : IDisposable
{
private readonly IDisposable _webApp;
private const string Url = "http://localhost:1234";
public MyIntegrationTests()
{
_webApp = WebApp.Start<Startup>(url: Url);
}
Мой стартовый классвыглядит так:
public class Startup
{
public void Configuration(IAppBuilder appBuilder)
{
appBuilder.UseNancy();
}
}
У меня также есть модуль NancyModule с маршрутом тестирования:
public class TestModule : NancyModule
{
public TestModule()
{
Get("/test", args => "test");
}
}
Однако при запуске моего модуля интеграционных тестов (при попытке запустить любой тест внутри него),меня встретил нулевой рефеисключение.Это трассировка стека:
System.NullReferenceException: ссылка на объект не установлена для экземпляра объекта.
в Microsoft.Owin.Hosting.Utilities.SettingsLoader.FromConfigImplementation ..ctor ()
в Microsoft.Owin.Hosting.Utilities.SettingsLoader.b__0 () в System.Threading.LazyInitializer.EnsureInitializedCore [T] (T & target, Func`1 valueFactory)
вMicrosoft.Owin.Hosting.Utilities.SettingsLoader.LoadFromConfig (настройки IDictionary`2)
в Microsoft.Owin.Hosting.Engine.StartContext..ctor (параметры StartOptions)
в Microsoft.Owin.Hosting.Starter.DirectHostingStarter.Start (параметры StartOptions)
в Microsoft.Owin.Hosting.Starter.HostingStarter.Start (параметры StartOptions)
в [отредактировано] .IntegrationTests.MyIntegrationTests ..ctor () в C: \ Users [отредактировано] \ source \ repos [redacted] .IntegrationTests \ MyIntegrationTests.cs: строка 21
Что я пробовал:
- Добавление пакетоводна за другой, с разными версиями.
- Изменение моего класса запуска для добавления конфигурации HttpConfiguration
- Очистка файлов cookie локального хоста (было предложено в других разделах здесь)
- Использование этого руководства: https://github.com/NancyFx/Nancy/wiki/Hosting-nancy-with-owin#katana---httplistener-selfhost Я получаю ту же ошибку, что и ранее.
Мне кажется, что конфигурация отсутствует или не найдена.Однако все, на что я ссылаюсь, существует.Есть идеи?(Стоит отметить, что в этом тестовом проекте нет appsettings.json, web.config и т. Д.)
РЕДАКТИРОВАТЬ: тестовый проект доступен здесь: https://www.dropbox.com/s/v1bw5pu9t0e9fwt/NancyOwinTest.zip?dl=0 Делая тестовый проект, я понимаю, что он восстанавливает пакеты вУровень .NET 4.6.1, а не .NET Core.Возможно, я совершаю глупую ошибку, но какую еще не выяснил.