编码 UI 测试中的 TestContext TestRunParameters

TestContext TestRunParameters in Coded UI Test

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

我的.运行设置文件:

<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...
}

编码 UI 测试是否需要额外配置才能访问这些 运行 时间属性?

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

尝试在 ClassInitialize 中使用它代替测试方法参考下面的代码

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

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

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

您可以创建 .cvs 或 .xml 文件,并通过数据驱动访问数据,而不是在 TestRunParameter 部分设置参数。详情查看这篇文章:

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