从VSTS测试中心运行按需自动化测试时使用测试配置

时间:2017-09-01 17:53:54

标签: automated-tests azure-devops

我的组织已经从在MTM中执行自动化测试转变为通过版本定义在VSTS测试中心内执行自动化测试。我们正在使用MSTest来运行Selenium / C#的测试。

我们需要能够按需运行任何单独的测试,后期构建,并使用测试配置来控制浏览器。当通过MTM运行测试时,这没有问题。

以前,当通过MTM运行测试时,我的MSTest TestContext的“属性”填充了运行时参数,例如测试配置,例如TestContext.Properties["__Tfs_TestConfigurationName__"]。运行时属性也可以在生成的.trx文件中看到。

现在,当通过VSTS测试中心运行测试时,这些值不再自动在TestContext中设置,也不会在.trx文件或我的Release部署日志中看到它们。

是否有关于如何将每个测试的测试配置值传播到TestContext(或者可以通过代码访问)以便能够在测试运行时控制浏览器的建议?

  • 我考虑过创建.runsettings文件,但我不知道如何将测试配置变量动态填充到该文件中。
  • 我考虑过在我的Selenium代码中查询测试运行/测试结果以确定测试点/配置,但我不知道如何确定测试运行ID(我在发布日志中看到测试运行ID,但不知道如何以编程方式访问它)
  • 我见过一个名为'VSTS Test Extensions'的VSTS扩展,它声称是将VSTS变量注入到.runsettings文件中,但没有详细说明如何配置.runsettings文件以实现此目的,以及旧的MTM风格的参数名称似乎不起作用。
  • 测试配置变量是否可以以某种方式在VSTS中全局访问? 即我可以创建PowerShell发布任务以某种方式访问​​测试运行/测试点数据吗?除了将测试配置用于手动测试之外,Microsoft不提供任何有关如何使用测试配置的指示。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

经过多次审核后,似乎我唯一的选择是一个巨大的黑客:

我注意到在Release日志中输出了[TEST_RUNID],它指向$(test.runid)变量,我不知道该变量存在。

我可以通过Powershell Release任务将Run ID输出到外部文件。

然后,我可以让我的测试代码读取该文件,对VSTS执行API调用,查询该运行ID的测试结果,然后使用该响应输出每个测试用例ID的测试配置名称。

然后,我可以将每个测试方法中的测试用例ID与服务调用响应中的测试用例ID进行匹配,并根据测试配置名称设置浏览器。

唯一的问题是,如果在同一次运行中使用不同的配置多次存在相同的测试,可以通过每次测试开始时查询测试运行并根据状态检查已运行的配置来查找(“待定”等)或其他一些我尚未想到的方法。