2015-11-19 54 views
-3

我有一个使用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,这是有关如何在运行时访问在测试设置文件的属性。所以这个问题不是重复的。

+0

可能重复[什么是NullReferenceException,我该如何解决它?](http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-doi-i-fix-它) –

+0

@MohitShrivastava这不是重复的,这是一个单独的场景 – tarzanbappa

回答

0

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

请点击此链接.runsettings file configuration并正确配置“SettingsFile”部分。

或者,您也可以尝试“TestRunParameters”部分以使其工作。

+0

我需要在测试设置文件中添加属性,因为我已经在使用它来指定部署项目。所以我可以一次使用运行设置和测试设置。我正在执行此测试使用命令行通过传递参数 – tarzanbappa

+0

我认为你可以。您可以指定指向测试设置的runsettings。 –

0

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

+0

你应该详细说一下.. – LPs