Coded UI Test中的TestContext TestRunParameters

时间:2015-09-16 00:24:25

标签: visual-studio coded-ui-tests azure-devops

按照程序概述herehere我能够设置一个TestRunParameter并在 Unit 测试中在运行时访问它。然后,我在编码的UI测试中重复了完全相同的过程,但无法访问属性。

我的.runsettings文件:

<RunSettings>
  <TestRunParameters>
    <Parameter name="webAppUrl" value="http://localhost" />
  </TestRunParameters>
</RunSettings>

我的测试方法:

[TestMethod]
public void MyTest1()
{
    // This throws an error because Properties["webAppUrl"] is null
    string webAppUrl = TestContext.Properties["webAppUrl"].ToString();

    // etc...
}

Coded UI测试是否需要其他配置才能访问这些运行时属性?

编辑: 我注意到在Unit测试的上下文中,TestContext是Microsoft.VisualStudio.TestPlatform.MSTestFramework.TestContextImplementation。在Coded UI测试中,TestContext为Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestAdapterContext

2 个答案:

答案 0 :(得分:4)

在Coded UI测试中无法访问.runsettings TestRunParameter部分中定义的参数。调试Coded UI测试时,您会发现TextContext.Properties包含一些值,ResultsDirectory,AgentId等。

但是,找不到TestRunParameter部分中定义的参数。

enter image description here

您可以创建.cvs或.xml文件,并通过数据驱动访问数据,而不是在TestRunParameter部分中设置参数。请查看此文章了解详细信息:

https://msdn.microsoft.com/en-us/library/ee624082.aspx

答案 1 :(得分:0)

尝试在ClassInitialize中使用它取代测试方法,请参阅下面的代码

[ClassInitialize]
public static void TestClassinitialize(TestContext context)
{
    var webAppUrl = context.Properties["webAppUrl"].ToString();
}