WebApplicationFactory и TestServer в интеграционных тестах для ASP. NET Core - PullRequest
0 голосов
/ 29 февраля 2020

У меня есть два целочисленных тестовых класса, определенных ниже. Когда я запускаю тесты в ApiControllerIT, все запускается успешно. То же самое для FoundationControllerIT. Однако, когда я запускаю оба вместе (запуская вложенную папку), тесты не выполняются. Сообщение об ошибке: Планировщик с именем DefaultQuartzScheduler уже существует . У меня есть это определение в моем файле Startup.cs: services.AddSingleton (IHostedService, QuartzHostedService); Таким образом, очевидно, что эта строка вызывает проблему (если я удаляю эту строку, все тестирование вместе выполняется ОК). Итак, мой вопрос - я новичок ie из Java .. поэтому у меня нет очень хорошего понимания. NET Базовая основа тестирования Integ, но я понимаю - TestServer создан для каждого из тестовые классы, например, один TestServer для ApiControllerIT, а другой для FoundationControllerIT. Это неверно? Я просто разочарован, почему я получаю сообщение «Планировщик с именем DefaultQuartzScheduler» уже существует ». когда я запускаю два отдельных тестовых класса? Почему тестовые серверы мешают друг другу?

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 ...

}
...