我正在使用一个.NET Nunit项目,并试图使用WebApplicationFactory类为集成测试创建一个夹具
当我运行测试时,我得到了异常。
System.InvalidOperationException :服务器尚未启动或未配置web应用程序。
但是,如果调试没有任何错误,并且测试运行时没有问题。我确实复制粘贴了一些我在网上找到的不同的好实现,并且删除了每个测试配置或服务替换,我仍然会得到错误。
这是我的配置
public class Initializer
{
protected WebApplicationFactory<Program> application { get; set; }
protected HttpClient client { get; set; }
protected IServiceProvider _serviceProvider;
[SetUp]
public void RunBeforeAnyTests()
{
application = new WebApplicationFactory<Program>().WithWebHostBuilder(conf =>
{
conf.UseEnvironment("Test");
});
client = application.Server.CreateClient();
_serviceProvider = application.Services;
}
}我不能调查,因为在调试模式下我没有问题。我被困在这上面,有人能帮我吗?
发布于 2022-11-21 14:39:40
我从测试中得到了完全相同的错误信息。在我的例子中,这是应用程序(web )本身的一个错误。
定义了一个不明确的路径,因此应用程序抛出一个异常并退出。
不幸的是,当运行测试项目时,您不会“看到”应用程序抛出的异常,因为它运行在不同的线程上。
来自安德鲁·洛克博客
_hostStartTcs是一个TaskCompletionSource,用于处理在后台运行的应用程序由于异常而退出的边缘情况。这是一个边缘的情况,但没有它,测试可能会无限期地悬念。
这句话让我意识到,应用程序可能已经“崩溃”了,事实证明是这样的。
因此,我还建议您尝试运行您的应用程序,并做一个健全的检查,以确保它没有崩溃在启动。
https://stackoverflow.com/questions/72526214
复制相似问题