gpt4 book ai didi

Azure DevOps VSTest 任务 - appconfig 设置

转载 作者:行者123 更新时间:2023-12-03 02:38:09 25 4
gpt4 key购买 nike

这是一个关于如何使用静态值进行在 Azure DevOps Pipeline 上运行的 VSTest 单元测试的问题。

当我开发依赖于 Web API 的单元测试时,我将本地开发计算机上托管的 Web API 的 URL 放入 appsettings.json 中,效果非常好。但是,当单元测试在 Azure 管道上运行时,它当然无法访问我的计算机上托管的 Web API,并且失败。我可以更改 appsettings.json 文件以指向 Azure 上的 Web API,但我希望有一种方法可以在管道上运行单元测试时始终指向 Azure 上的 WebAPI,从而覆盖 appsettings.json 中的设置。有这样的办法吗?

对于 Azure 管道版本,我知道我可以使用 Azure 应用服务设置任务 ( https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/deploy/azure-app-service-settings?view=azure-devops ) 设置应用服务的变量。不确定 VSTests 是否可以使用类似的功能。

最佳答案

您可以使用File Transform task将 appsettings.json 文件中的变量替换为管道变量。请参阅here了解更多信息

因此您可以在构建任务之前添加文件转换任务。然后在管道变量中定义一个变量(例如 TestData.Url)。 enter image description here

请参阅下面的 yaml 示例。

- task: FileTransform@1
displayName: 'File Transform: '
inputs:
folderPath: '$(system.defaultworkingdirectory)'
enableXmlTransform: false
fileType: json
targetFiles: '**/appsettings.json'

还有其他任务可以完成相同的工作。您可以查看任务Set Json Property ,和任务Magic Chunks

您还可以将 Web API 的 URL 放入 runsettings 文件的 TestRunParameters 部分或 testsettings 文件的 Properties 部分。并修改您的测试代码以从 testsettings/runsettings 文件获取 URL。然后,您可以使用 Vstest Task 的 overrideTestrunParameters 属性来覆盖 URL。请参阅Vstest task document了解更多信息。

关于Azure DevOps VSTest 任务 - appconfig 设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62375500/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com