servicestack,Asp.net Core,servicestack" /> servicestack,Asp.net Core,servicestack" />

Asp.net core 与ASPNetCore和ServiceStack的集成测试

Asp.net core 与ASPNetCore和ServiceStack的集成测试,asp.net-core,servicestack,Asp.net Core,servicestack,我有一个使用ServiceStack Core的ASP.Net Core 1.1项目。我正在尝试编写一个基本的集成测试,如下所示: [TestFixture] public class BasicStartupTest { TestServer Server; HttpClient Client; const string BASE_URL = "http://localhost:57893"; [OneTimeSetUp] public void One

我有一个使用ServiceStack Core的ASP.Net Core 1.1项目。我正在尝试编写一个基本的集成测试,如下所示:

[TestFixture]
public class BasicStartupTest
{
    TestServer Server;
    HttpClient Client;
    const string BASE_URL = "http://localhost:57893";
    [OneTimeSetUp]
    public void OneTimeSetup()
    {
        Server = new TestServer(new WebHostBuilder().UseStartup<Startup>());
        Client = Server.CreateClient();
    }

    [OneTimeTearDown]
    public void OneTimeTearDown()
    {
        Server.Dispose();
    }

    [Test]
    public async Task ShouldHitHealthEndpointAndReturn200()
    {
        var response = await Client.GetAsync("/health");
        response.EnsureSuccessStatusCode();
    }
}
[TestFixture]
公共类基本启动测试
{
测试服务器;
HttpClient;
常量字符串BASE_URL=”http://localhost:57893";
[一次性设置]
public void OneTimeSetup()
{
服务器=新的TestServer(新的WebHostBuilder().UseStartup());
Client=Server.CreateClient();
}
[onetimeeartown]
公共空间
{
Dispose();
}
[测试]
公共异步任务应具有DPoint并返回200()
{
var response=wait Client.GetAsync(“/health”);
response.EnsureSuccessStatusCode();
}
}
问题是,当它试图从客户端实例运行GetAsync函数时,我得到了以下堆栈跟踪:

Result StackTrace:  at ServiceStack.Host.NetCore.NetCoreRequest.get_UserHostAddress() in C:\TeamCity\buildAgent\work\a61371dd01fad6bd\src\ServiceStack\Host\NetCore\NetCoreRequest.cs:line 215
   at ServiceStack.HttpRequestExtensions.GetAttributes(IRequest request) in C:\TeamCity\buildAgent\work\a61371dd01fad6bd\src\ServiceStack\HttpRequestExtensions.cs:line 844
   at ServiceStack.AppHostBase.ProcessRequest(HttpContext context, Func`1 next) in C:\TeamCity\buildAgent\work\a61371dd01fad6bd\src\ServiceStack\AppHostBase.NetCore.cs:line 113
   at Microsoft.AspNetCore.Hosting.Internal.RequestServicesContainerMiddleware.<Invoke>d__3.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
Result StackTrace:at ServiceStack.Host.NetCore.NetCoreRequest.get_UserHostAddress(),位于C:\TeamCity\buildAgent\work\a61371dd01fad6bd\src\ServiceStack\Host\NetCore\NetCoreRequest.cs:第215行
在C:\TeamCity\buildAgent\work\a61371dd01fad6bd\src\ServiceStack\HttpRequestExtensions.cs中的ServiceStack.HttpRequestExtensions.GetAttributes(IRequest请求)处:第844行
在C:\TeamCity\buildAgent\work\a61371dd01fad6bd\src\ServiceStack\AppHostBase.NetCore.cs中的ServiceStack.AppHostBase.ProcessRequest(HttpContext上下文,Func`1 next)处:第113行
在Microsoft.AspNetCore.Hosting.Internal.RequestServicesContainerMiddleware.d_u3.MoveNext()中
---来自引发异常的上一个位置的堆栈结束跟踪---
它继续运行,但当我尝试在集成测试中调用端点时,ServiceStack中的某些get_UserHostAddress函数似乎存在问题

如何修复此错误?

在启用真实自主机HTTP服务器的情况下使用,对于.NET Core,ServiceStack.Kestrel NuGet包中提供了AppSelfHostBase类