#c# #.net-core #xunit
Вопрос:
В моих тестах используется HttpClient. Поэтому я создал вспомогательный метод для инициализации клиента в конструкторе всех моих тестовых файлов.
Сначала я попытался использовать AppContext.BaseDirectory, чтобы получить базовый каталог для проекта, который я пытался протестировать. Проблема в том, что он не подбирает правильное название проекта, поэтому загружает настройки приложений.Development.json из другого проекта, приводящего к сбою тестов. В итоге я жестко закодировал проект реж.
Я не могу понять, как я могу заставить его загружать настройки приложений.Development.json из проекта, который я хочу протестировать.
public static HttpClient GetHttpClient()
{
// projectDir one, loads tests project.
// var projectDir = AppContext.BaseDirectory;
var projectDir = @"C:WorkSrcApplicationbinDebugnet5.0";
var server = new TestServer(new WebHostBuilder()
.UseEnvironment("Development")
.UseConfiguration(new ConfigurationBuilder()
.SetBasePath(projectDir)
.AddJsonFile("appsettings.Development.json")
.Build()
)
.UseStartup<Startup>()
);
return server.CreateClient();
}
Основная проблема заключается в том, что он не может загрузить настройки для RabbitMQ, которые поступают из приложений.Файл разработки.json.
// Load RabbitMQ config.
var serviceClientSettingsConfig = Configuration.GetSection("RabbitMq");
services.Configure<RabbitMqConfiguration>(serviceClientSettingsConfig);
Примечание: Я планирую поиздеваться над этим последним, но пока мой клиент должен видеть, как работают сквозные тесты.
Комментарии:
1. Не можете ли вы настроить параметры при запуске, чтобы вы могли ввести их в свой тестовый класс?
2. Они в том, что настройки не загружены, потому что он не может захватить правильные настройки приложений. Разработка.json. Проверьте, что проблема с редактированием связана с конфигурацией RabbitMQ при запуске.