Azure DevOps VSTest任务-appconfig设置

Azure DevOps VSTest任务-appconfig设置,azure,azure-devops,azure-pipelines,Azure,Azure Devops,Azure Pipelines,这是一个关于如何为在Azure DevOps管道上运行的VSTest单元测试使用静态值的问题 当我开发一个依赖于我的Web API的单元测试时,我将托管在本地开发人员机器上的Web API的URL放在appsettings.json中,这非常有效。然而,当单元测试在Azure管道上运行时,它当然无法访问托管在我的机器上的Web API,并且失败了。我可以将appsettings.json文件更改为指向Azure上的Web API,但我希望有一种方法在管道上运行单元测试时始终指向Azure上的We

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

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


对于Azure管道版本,我知道我可以使用Azure应用程序服务设置任务()为应用程序服务设置变量。不确定类似的功能是否可用于VSTests。

您需要有两个appsettings文件。一个用于开发(本地测试),另一个用于生产(AzureDevops管道)


这样,如果您需要对本地测试进行一些更改,则只需更改dev-one。

您需要有两个appsettings文件。一个用于开发(本地测试),另一个用于生产(AzureDevops管道)

类似于此,如果需要对本地测试进行一些更改,则只需更改dev-one。

您可以使用管道变量替换appsettings.json文件中的变量。有关更多信息,请参阅

因此,可以在生成任务之前添加文件转换任务。然后在管道变量中定义一个变量(例如TestData.Url)。

参见下面的yaml示例

- task: FileTransform@1
  displayName: 'File Transform: '
  inputs:
    folderPath: '$(system.defaultworkingdirectory)'
    enableXmlTransform: false
    fileType: json
    targetFiles: '**/appsettings.json'
还有其他任务可以做同样的工作。您可以签出任务和任务

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

您可以使用管道变量替换appsettings.json文件中的变量。有关更多信息,请参阅

因此,可以在生成任务之前添加文件转换任务。然后在管道变量中定义一个变量(例如TestData.Url)。

参见下面的yaml示例

- task: FileTransform@1
  displayName: 'File Transform: '
  inputs:
    folderPath: '$(system.defaultworkingdirectory)'
    enableXmlTransform: false
    fileType: json
    targetFiles: '**/appsettings.json'
还有其他任务可以做同样的工作。您可以签出任务和任务


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

您好,您是否有机会尝试下面的答案?进展如何?嗨,你有机会尝试下面的答案吗?进展如何?