我有两个完整的测试类,定义如下。当我在ApiControllerIT中运行测试时,所有测试均成功运行。 FoundationControllerIT也是如此。但是,当我同时运行两者(通过运行封闭文件夹)时,测试失败。错误消息是:名称为'DefaultQuartzScheduler'的调度程序已经存在。我在Startup.cs文件中有以下定义: services.AddSingleton(IHostedService,QuartzHostedService); 因此,很明显,此行会引起问题(如果我删除此行,则所有测试一起运行都可以)。所以我的问题是-我是Java的新手..因此我对.NET Core Integ测试框架没有很好的了解,但是我的理解是-为每个测试类(例如,一个用于ApiControllerIT的TestServer,另一个用于FoundationControllerIT。这不正确吗?我只是很沮丧,为什么收到一条消息“名称为“ DefaultQuartzScheduler”的调度程序已经存在”。当我运行两个单独的测试类时? TestServer如何相互干扰?
public class ApiControllerIT : IClassFixture<WebApplicationFactory<Startup>>
{
private readonly WebApplicationFactory<Startup> _factory;
public ApiControllerIT(WebApplicationFactory<Startup> factory)
{
_factory = factory;
}
// tests ...
}
public class FoundationControllerIT : IClassFixture<WebApplicationFactory<Startup>>
{
private readonly WebApplicationFactory<Startup> _factory;
public FoundationControllerIT(WebApplicationFactory<Startup> factory)
{
_factory = factory;
}
// tests ...
}