2015-11-19 52 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