Azure DevOps 发布管道上的 nunit 测试解决方案的 AppSetup



我正在为我们更复杂的后端系统之一编写一个系统集成测试项目。 为了符合公司堆栈,测试解决方案将 .net core 2.1 和 nunit 3 与 c# 一起使用。它有一个testconfiguration.cs文件,该文件使用iconfig类从appsettings.json获取测试配置值。 appsettings.json具有诸如serviceconnectionstring s等配置
,该公司使用azure devops作为CI/CD工具。 我设置了一个生成管道来生成解决方案,并发布要在发布管道上使用的项目。 此释放管道有 2 个阶段(即:2 个差异环境(。应用值来自管道变量。 在使用 Azure 应用服务部署任务之前,我只部署过实际的服务 API 应用,我可以在其中设置发布管道任务上的应用设置配置。 但是,当涉及到像nunit这样我真的不需要"部署"的独立测试解决方案时,如何在运行时设置测试解决方案的应用程序设置并运行测试? 我正在谷歌搜索这些术语,所以很多文章只谈论 vstest 运行任务来运行测试,但它并没有真正允许任何 appsettings.json 在每个运行时更新。 我应该如何处理?在某些环境中,我不知道dbconnectionstring是什么,这些值由管道上的ops控制,所以我试图找到一种测试解决方案可以不可知地使用它的方法。

根据您的描述,似乎您想在运行集成测试之前覆盖appsettings.json中定义的设置。

如果是这样,可以尝试安装"替换令牌"扩展,然后使用"替换令牌"任务加载和更改appsettings.json文件中定义的设置。

您还可以转换设置或使用文件创建器创建新的appsettings.json文件以覆盖现有文件。

以下博客供您参考:

  • 将配置文件中的 appset 标记替换为构建和发布 VSTS 中的管理 (TFS(
  • 使用 Azure 转换 .NET Core 2.2 Web API 中的配置 开发运营
  • 将自定义 appsettings.json 与 ASP.NET 核心集成结合使用 测试