我有一个自托管的.NET Core Console应用程序.
Web显示ASP.NET Core的示例,但我没有Web服务器.只是一个简单的命令行应用程序
是否可以为控制台应用程序执行此类操作?
public static void Main(string[] args)
{
// I don't want a WebHostBuilder. Just a command line
var host = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
host.Run();
}
Run Code Online (Sandbox Code Playgroud)
我想在ASP.NET Core中使用Startup.cs,但是在控制台上.
怎么样?
我需要为 ASP.NET 6 API 编写一些单元测试,并且需要创建一个测试服务器来验证授权。但是,由于启动类已被删除,我不知道应该使用什么作为创建测试服务器的入口点。这是以前版本中创建的方式。
var server = new TestServer(new WebHostBuilder().UseStartup<Startup>());
Run Code Online (Sandbox Code Playgroud) 我正在尝试在测试中设置我的应用程序并在Startup's Configure方法中使用,context.Database.EnsureCreated()并且期望Sqlite文件出现在Test'sbin 文件夹中
这是我的代码:
using Microsoft.AspNetCore.Mvc.Testing;
using System.Threading.Tasks;
using Xunit;
namespace MyApp.Tests
{
public class UnitTest1 : IClassFixture<CustomWebApplicationFactory<FakeStartup>>
{
private readonly CustomWebApplicationFactory<FakeStartup> _factory;
public UnitTest1(CustomWebApplicationFactory<FakeStartup> factory)
{
_factory = factory;
}
[Fact]
public async Task Test1()
{
// Arrange
var client = _factory.CreateClient();
// Act
var response = await client.GetAsync("https://localhost:5001/");
// Assert
response.EnsureSuccessStatusCode(); // Status Code 200-299
Assert.Equal("text/html; charset=utf-8", response.Content.Headers.ContentType.ToString());
}
}
}
Run Code Online (Sandbox Code Playgroud)
正在使用 WebAppFactory:
using MyApp.Tests;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc.Testing;
public …Run Code Online (Sandbox Code Playgroud)