【问题标题】:How to pass runtime parameters file for testers to run integration test from azure pipelines,如何为测试人员传递运行时参数文件以从 azure 管道运行集成测试,
【发布时间】:2020-05-21 23:25:15
【问题描述】:

我们实际上正在开发 azure 管道,我们希望通过测试人员运行集成测试所需的参数并查看集成测试是否通过的输出。我知道我们可以使用 runsettings 来传递数据 -它适用于少数变量,但我们有大量数据要传递给半自动化集成测试。有没有一种方法可以将所有测试数据放在 xml 文件或测试运行所需的其他文件格式中,并通过在测试人员运行集成测试时触发 azure 管道在运行时传递文件。 另一个选项是在哪里可以在管道中使用模板中的参数,如果可以的话,我可以使用这种方法,当我运行集成测试时如何将这些值输入 Visual Studio..

【问题讨论】:

  • 您在 azure devops、azure pipelines 或 visual studio 中在哪里运行集成测试、测试计划?您能否分享您想要实现的详细步骤(最好有截图)?您能否将测试参数文件提交到您的代码仓库并让您的测试代码从该参数文件中获取参数。以便测试人员可以获取文件以及源代码。 this blog对你有帮助吗?
  • 我们正在运行集成测试作为 azure 管道的一部分,我们的计划是让测试人员通过传递一些参数来运行集成测试,因为我们有很多参数要传递给集成测试最好的主意将所有参数放入文件中并将该文件传递到管道中并针对不同环境(如 Dev、test.js)运行测试。例如,从 runsettings 文件传递​​ url、用户名和密码,测试人员可以运行测试计划运行测试。想知道是否有可能在管道和集成测试中传递文件。谢谢。

标签: c# visual-studio .net-core integration-testing azure-pipelines


【解决方案1】:

1,如果您的 azure 管道在 YAML 文件中,您可以查看 variable template

首先定义一个模板yaml文件(例如vars.yaml)

# File: vars.yml
variables:
  url: 'http://url'
  userName: "username"

然后在 azure-pipelines.yml 文件中,参考 Variables 部分中的模板 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,您也可以尝试在azure管道中将测试参数文件上传为secure file

然后您可以在您的天蓝色管道中添加Download secure file task 以在运行时下载参数文件。通过下载安全文件任务下载后,其路径可以在管道中引用为$(mySecureFile.secureFilePath)。或者,下载的安全文件可以在$(Agent.TempDirectory)给出的目录中找到。

然后您可以使用Copy files task 在构建代理中移动参数文件。

注意:使用安全文件不方便更新测试参数,每次需要更新测试参数时都必须将测试参数文件上传到 azure devops。在管道运行时检索参数文件中定义的测试参数将是一个问题。

3,您也可以使用variable group 进行尝试。然后,您可以将所有测试参数存储在变量组中。您可以Link the variable group 到您的管道。然后存储在变量组中的测试参数将在您的管道中可用。

在 Visual Studio 测试任务中,您可以使用变量组中定义的参数轻松覆盖测试运行参数。见下文:

我建议在您的管道中使用变量组。在变量组中维护您的测试参数很容易,并且可以跨多个管道重复使用。

希望以上有所帮助!

【讨论】:

  • 非常感谢您回答我的问题..我明天试试..再次感谢?
  • 我正在尝试第一个选项,因为我们的管道在 yaml 中。无法覆盖,因为它与“覆盖测试运行参数不是预期的属性”出错。这会成为争论的一部分吗?您能否让我知道我需要在哪里覆盖参数。谢谢。
  • 对不起,我可能不是描述性的-我的意思是使用第一个选项步骤:-任务:VSTest@2 displayName:'VsTest - testAssemblies'输入:overrideTestrunParameters:'-url $(url) 不能做这作为覆盖测试运行参数在 yaml 管道中无效。
  • 截至目前,我有一个运行设置文件,其中包含需要传递以供测试运行的值列表,并且在管道中,我正在覆盖变量中的值(在旁边可用管道中的运行按钮)使用 powershell。
  • 我发现上面的 yaml 示例中 overrideTestrunParameters 存在缩进错误。非常遗憾。我更新了上面的 yaml 示例。点击here了解更多vstest任务信息。
猜你喜欢
  • 2021-03-08
  • 1970-01-01
  • 1970-01-01
  • 2022-11-23
  • 2011-02-02
  • 1970-01-01
  • 1970-01-01
  • 2015-09-05
  • 2020-01-18
相关资源
最近更新 更多