我们实际上是在蔚蓝的管道上工作,我们想要传递集成测试所需的参数以由测试人员运行,并查看是否通过了集成测试。我知道我们可以使用运行设置来传递数据-它对于很少的变量很有用,但是我们有大量数据可以传递给半自动化集成测试。有没有一种方法可以通过在测试人员运行集成测试时触发azure管道,将所有测试数据放入xml文件或其他某种文件格式,以便测试在运行时运行并在运行时传递文件。 还有一个选择是可以在管道中的模板中使用参数,如果可以的话,我可以使用这种方法吗?在运行集成测试时如何将这些值输入Visual Studio。
答案 0 :(得分:0)
1,如果您的azure管道位于YAML文件中,则可以签出variable template。
首先定义模板yaml文件(例如vars.yaml)
# File: vars.yml
variables:
url: 'http://url'
userName: "username"
然后在文件azure-pipelines.yml中,参考变量部分
中的模板vars.yml。# File: azure-pipelines.yml
variables:
- template: vars.yml # Template reference
steps:
- task: VSTest@2
inputs:
testSelector: 'testAssemblies'
testAssemblyVer2: |
**\*test*.dll
!**\*TestAdapter.dll
!**\obj\**
searchFolder: '$(System.DefaultWorkingDirectory)'
runSettingsFile: '**/*.runsettings'
overrideTestrunParameters: '-url $(url) -userName $(userName)'
注意:变量模板文件也必须提交到您的代码存储库。它仅在 Yaml管道中可用。
2,您也可以尝试在天青管道中以secure file的形式上传测试参数文件。
然后,您可以在天蓝色管道中添加Download secure file task,以便在运行时下载参数文件。通过下载安全文件任务下载它之后,可以在管道中将其路径引用为$(mySecureFile.secureFilePath)
。另外,可以在$(Agent.TempDirectory)
给定的目录中找到下载的安全文件。
然后您可以使用Copy files task在构建代理程序的参数文件中移动。
注意:使用安全文件不方便更新测试参数,每次需要更新测试参数时,都必须将测试参数文件上载到Azure Devops。在管道运行时检索参数文件中定义的测试参数将是一个问题。
3,您也可以尝试使用variable group。然后,您可以将所有测试参数存储在变量组中。您可以Link the variable group到管道。然后,变量组中存储的测试参数将在您的管道中可用。
在Visual Studio测试任务中,您可以轻松地用变量组中定义的参数覆盖测试运行参数。见下文:
我建议您在管道中使用变量组。将测试参数维护在变量组中很容易,并且可以在多个管道中重复使用。
希望上面有帮助!