如何使用 xUnit.net 和 ASP.NET 5 运行 内存集成测试?

How do I run in-memory integration tests using xUnit.net and ASP.NET 5?

我的单元测试已经运行良好,但我想在内存托管中进行并使用 HttpClient 进行集成测试。 ASP.NET 5.

似乎找不到太多关于此的信息

最终使用了以下包而不是 Kestrel:

Microsoft.AspNet.TestHost package

示例我如何将它用于我的应用程序:

[Fact]
public async void GetShouldReturnTwoValues()
{
  var server = TestServer.Create(app =>
  {
    var env = app.ApplicationServices.GetRequiredService<IHostingEnvironment>();
    new Startup(env).Configure(app, env);
  }, services => services .AddMvc());

  var result = await server.CreateClient().GetAsync("api/values/");

  Assert.True(result.IsSuccessStatusCode);
}

回购:

https://github.com/aspnet/Hosting

用法/文档:

https://github.com/aspnet/Hosting/blob/master/test/Microsoft.AspNetCore.TestHost.Tests/TestServerTests.cs

我偶然发现了同样的问题。因此,为了完整性,我想补充一点,将 NuGet 包的名称更改为 Microsoft.AspNetCore.TestHost.

正确的文档:https://docs.asp.net/en/latest/testing/integration-testing.html