Тест интеграции XUnit Net Core Web API: «Свойство ConnectionString не было инициализировано». - PullRequest
0 голосов
/ 18 декабря 2018

Просто пытаюсь создать проект Integration Test для NET Core Web API.Итак, я следовал нескольким примерам, включая этот (https://dotnetcorecentral.com/blog/asp-net-core-web-api-integration-testing-with-xunit/), и, естественно, у меня возникают проблемы. Когда я запускаю простой тест GET, я получаю исключение: «System.InvalidOperationException: свойство ConnectionString не былоинициализирован. "

Любая помощь будет оценена.

1 Ответ

0 голосов
/ 19 декабря 2018

Для server = new TestServer(new WebHostBuilder().UseStartup<Startup>()); необходимо вручную настроить путь appsettings.json, например

var server = new TestServer(WebHost.CreateDefaultBuilder()
                    .UseContentRoot(@"D:\Edward\SourceCode\AspNetCore\Tests\IntegrationTestMVC") 
                    // This is the path for project which needs to be test
                    .UseStartup<Startup>()
    );

. Для удобства я бы предложил вам попробовать Базовые тесты с WebApplicationFactory по умолчанию .,

Конструктор WebApplicationFactory выводит корневой путь содержимого приложения путем поиска атрибута WebApplicationFactoryContentRootAttribute в сборке, содержащей интеграционные тесты, с ключом, равным сборке TEntryPoint System.Reflection.Assembly.FullName.Если атрибут с правильным ключом не найден, WebApplicationFactory возвращается к поиску файла решения (* .sln) и добавляет имя сборки TEntryPoint в каталог решения.Корневой каталог приложения (корневой путь содержимого) используется для обнаружения представлений и файлов содержимого.

Ссылка: Как инфраструктура тестирования определяет корневой путь содержимого приложения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...