如何配置Xunit dotnet核心项目以从不同的配置(Dev,Test,Staging)进行初始化

维卡斯

我有一个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
  • 创建Visual Studio测试任务以运行xUnit测试
  • 在您的xUnit项目中,只需使用System.Environment.GetEnvironmentVariable(“ ASPNETCORE_ENVIRONMENT”)

所有.NET核心配置类都可以通过Microsoft.Extensions.ConfigurationNuget包获得

因此,尽管我没有尝试过,但是您应该能够直接在测试项目中使用这些框架类来为您的特定测试环境配置参数-例如

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何配置hikari池以进行快速初始化?

如何配置Fish shell初始化?

Automapper实例配置尚未在xUnit测试中初始化

初始化核心配置时出现致命错误

如何从不同结构的值初始化结构

XUnit C#功能测试中的类型化配置

如何通过Mockito初始化Servlet配置

初始化失败时如何还原配置设置

如何等待初始化配置完成?

如何使用现有BuildType的配置初始化BuildType?

如何以及何时初始化Python中的配置?

如何(以及为什么)初始化JUL配置类?

如何使用我的配置初始化我的 AutoMapper

Core xUnit Test Project中的配置:找不到配置文件“ appsettings.test.json”

如何在放大初始化期间配置AWS配置文件的使用情况?

无效的配置对象。Webpack已使用配置进行了初始化

无效的配置对象。Webpack 已使用不匹配的配置对象进行初始化

如何将XUnit配置为在Visual Studio 2015测试资源管理器中仅显示方法名称?

Spring 无法在配置文件“dev”中初始化 bean

配置系统初始化失败

弹簧配置初始化方法

Spring Web Mvc配置初始化

“ dotnet测试”:如何并行运行xunit测试项目?

在XUnit中如何对收到的IActionResult进行解析

如何启动clientapp并运行xunit test

在node.js中初始化|| 如何处理node.js中的初始配置

如何初始化IOption <AppSettings>以对.NET核心MVC服务进行单元测试?

使用采用不同初始化配置的实现来实现IOC的设计模式

Android-ImageLoader必须在UIL中使用之前通过配置进行初始化