我有一个REST API,我想使用dotnet core 2.0进行集成测试(而不是单元测试)。
目的是能够在本地运行这些集成测试,以指向本地开发人员环境,并且还可以使用我计划从Teamcity参数传递的给定测试环境。
我碰到了这篇文章,描述了如何在ASP.NET Core中使用Configuration。我正在为xunit项目寻找类似的东西。
在.NET Framework世界中,我通过为环境使用单独的json文件来管理此问题,并添加了Settings.settings文件来为测试环境添加变量,并在运行测试之前传递环境的值。但是,在dotnet core xunit 2.0项目中,我看不到此Settings.settings文件选项。有什么建议如何解决这个问题?
我不确定您要使用哪种机制/ CI / CD管道进行测试。
也就是说,您可以使用环境变量将配置传递给xUnit测试。例如,如果使用Azure DevOps,则可以通过管道变量来提供环境变量。我已经使用Azure DevOps中的.NET Core 2.1项目成功完成了此工作,因此我知道这是可行的。我在使它在旧版本的.NET Core中工作时遇到了问题。
例如,在Azure DevOps中,您可以按以下方式解决此问题
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替代超控默认值
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句