我的组织已经从在MTM中执行自动化测试转变为通过版本定义在VSTS测试中心内执行自动化测试。我们正在使用MSTest来运行Selenium / C#的测试。
我们需要能够按需运行任何单独的测试,后期构建,并使用测试配置来控制浏览器。当通过MTM运行测试时,这没有问题。
以前,当通过MTM运行测试时,我的MSTest TestContext的“属性”填充了运行时参数,例如测试配置,例如TestContext.Properties["__Tfs_TestConfigurationName__"]
。运行时属性也可以在生成的.trx文件中看到。
现在,当通过VSTS测试中心运行测试时,这些值不再自动在TestContext中设置,也不会在.trx文件或我的Release部署日志中看到它们。
是否有关于如何将每个测试的测试配置值传播到TestContext(或者可以通过代码访问)以便能够在测试运行时控制浏览器的建议?
非常感谢任何帮助。
答案 0 :(得分:0)
经过多次审核后,似乎我唯一的选择是一个巨大的黑客:
我注意到在Release日志中输出了[TEST_RUNID],它指向$(test.runid)变量,我不知道该变量存在。
我可以通过Powershell Release任务将Run ID输出到外部文件。
然后,我可以让我的测试代码读取该文件,对VSTS执行API调用,查询该运行ID的测试结果,然后使用该响应输出每个测试用例ID的测试配置名称。
然后,我可以将每个测试方法中的测试用例ID与服务调用响应中的测试用例ID进行匹配,并根据测试配置名称设置浏览器。
唯一的问题是,如果在同一次运行中使用不同的配置多次存在相同的测试,可以通过每次测试开始时查询测试运行并根据状态检查已运行的配置来查找(“待定”等)或其他一些我尚未想到的方法。