如何在 Azure DevOps 发布管道的测试项目中替换值 appsettings.json?

How do I substitute values appsettings.json in a test project in Azure DevOps release pipeline?

我有什么

问题

  1. 如何替换与我的测试项目相关的设置 appsettings.json。
  2. 如何强制测试 运行ner 使用特定的环境,例如 Staging,以便选择 appsettings.Staging.json will?
  1. 如何替换与我的测试项目相关的设置 appsettings.json。

    有一个 File Trasnform 任务执行变量替换,与 IIS Web 应用程序部署任务完全一样,但在一个单独的步骤中。


  1. 如何强制测试运行器使用特定环境,例如暂存,以便选择 appsettings.Staging.json 遗嘱?

    像ASPNETCORE_ENVIRONMENT这样的环境变量可以在.runsettings文件中配置:

     <?xml version="1.0" encoding="utf-8"?>
     <RunSettings>
       <RunConfiguration>
         <EnvironmentVariables>
           <ASPNETCORE_ENVIRONMENT>Development</ASPNETCORE_ENVIRONMENT>
         </EnvironmentVariables>
       </RunConfiguration>
     </RunSettings>
    

    然后可以在单独的流水线步骤中替换环境变量的值。我使用过 powershell 任务:

     steps:
     - powershell: |
        $fileName = "$(System.DefaultWorkingDirectory)/MyBuildArtifact/test.runsettings";
        [xml]$xml = Get-Content $fileName
        $xml.SelectSingleNode("//ASPNETCORE_ENVIRONMENT").InnerText = "$(System.StageDisplayName)";
        $xml.Save($fileName);
       failOnStderr: true
       showWarnings: true
       displayName: 'Configure ASPNETCORE_ENVIRONMENT'
    

我还需要确保 test.runsettings 文件包含在我的构建工件中并配置 Visual Studio 测试任务以使用该文件