Интеграционные тесты: Средство типа '.... LoggingFacility' уже зарегистрировано в контейнере - PullRequest
0 голосов
/ 02 февраля 2019

Я настраиваю интеграционный тестовый проект для Aspnet Core MVC.

Я использую AspNetBoilerplate.

Я создал проект с этим WebApplicationFactory:

public class CustomWebApplicationFactory : WebApplicationFactory<Program>
{
}

И мои тестовые классы наследуются от

public partial class ScenarioTest : IClassFixture<CustomWebApplicationFactory>
{

Когда я запускаю весь набор тестов, я получаю одну из этих ошибок:

Castle.MicroKernel.ComponentRegistrationException : Component iloggerfactory could not be registered. There is already a component with that name. Did you want to modify the existing component instead? If not, make sure you specify a unique name.

System.ArgumentException : Facility of type 'Castle.Facilities.Logging.LoggingFacility' has already been registered with the container. Only one facility of a given type can exist in the container.

Castle.MicroKernel.Handlers.HandlerException : Can't create component 'Microsoft.Extensions.Logging.ILoggerProvider_e02ce050-f09e-48d5-b518-57e4ee2ef81b' as it has dependencies to be satisfied.

Затем, когда я пытаюсь запустить набор тестов во второй раз, я получаю это:

enter image description here

Очистка тестового проекта и его повторный запуск приводит к повторному появлению ошибок

Хотя я могу запустить один тестовый класс (с ReSharper)и тестовый класс успешно выполняется.

Помощь с этим будет принята с благодарностью, так как я не могу запустить непрерывный сеанс тестирования, и это довольно раздражает

1 Ответ

0 голосов
/ 07 февраля 2019

Изменить WebApplicationFactory<Program> на WebApplicationFactory<Startup>.

...