Я не уверен, какой механизм / конвейер CI / CD вы используете для своих тестов.
Тем не менее, вы можете использовать переменные окружения для передачи конфигурации в ваши тесты xUnit. Например, если вы используете DevOps Azure, переменные среды могут предоставляться через конвейерные переменные. Я успешно сделал это с проектом .NET Core 2.1 в Azure DevOps, поэтому я знаю, что это работает. У меня были проблемы с тем, чтобы заставить это работать в более старых версиях .NET Core.
Например - в DevOps Azure вы бы указали это следующим образом
- Создать переменную построения конвейера - например,
ASPNETCORE_ENVIRONMENT
- Создание тестовой задачи Visual Studio для запуска теста xUnit
- В вашем проекте xUnit просто используйте System.Environment.GetEnvironmentVariable ("ASPNETCORE_ENVIRONMENT")
Все классы конфигурации ядра .NET доступны через Microsoft.Extensions.Configuration
пакет Nuget
Таким образом, хотя я не пробовал этого, вы сможете использовать эти классы каркаса непосредственно в своем тестовом проекте для настройки параметров для ваших конкретных сред тестирования - например,
new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddJsonFile($"appsettings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT")}.json", optional: true)
.AddEnvironmentVariables()
.Build();
Показанный выше .AddEnvironmentVariables()
также можно использовать в качестве альтернативы для переопределения значений по умолчанию в appsettings.json