在运行时

时间:2015-11-19 04:28:15

标签: c# visual-studio unit-testing vs-unit-testing-framework

我有一个使用MSTest的测试项目。我有一个 testsettings 文件,并在该文件中有一个属性。如下。

<?xml version="1.0" encoding="UTF-8"?>
<TestSettings name="local" id="77572268-dd99-4f8c-a660-f5c8c1eec977" 
              xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010">
  <Description>These are default test settings for a local test run.</Description>

  <Execution>
    <TestTypeSpecific>
      <UnitTestRunConfig testTypeId="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b">
        <AssemblyResolution>
          <TestDirectory useLoadContext="true" />
        </AssemblyResolution>
      </UnitTestRunConfig>
    </TestTypeSpecific>
    <AgentRule name="Execution Agents">
    </AgentRule>
  </Execution>
  <Properties >
    <Property name="AAA" value="val1"></Property>
    <Property name="BBB" value="val2"></Property>
  </Properties>
</TestSettings>

但是如何在运行时按名称访问testsettings文件值中的这些属性。我怎么能这样做?

这就是我现在正在尝试的......

   [ClassInitialize]
    public static void TestClassInitialize(TestContext context)
    {
        var sad = context.Properties["AAA"].ToString();
    }

它提供以下异常

  

发生了'System.NullReferenceException'类型的异常   TestAutomation.dll但未在用户代码中处理

     

附加信息:对象引用未设置为的实例   对象

这不是关于 System.NullReferenceException ,而是关于如何在运行时访问测试设置文件中的属性。所以这个问题不重复。

2 个答案:

答案 0 :(得分:0)

我怀疑您没有正确配置.runsettings文件。

点击此链接.runsettings file configuration并配置&#34;设置文件&#34;适当的部分。

或者您也可以尝试&#34; TestRunParameters&#34;让这个工作的部分。

答案 1 :(得分:0)

您访问属性的方式不正确。您需要使用runsettings文件。