2016-06-10 83 views
0

我有一個單元測試項目,示例代碼如下。基本上我的計劃是在運行時創建數據,這些數據將作爲單元測試的數據源。MSTest中runsettings和testsettings之間的區別究竟是什麼

[TestMethod] 
[TestCategory("UITest"), TestCategory("PersonalDetailsFlow")] 
[DataSource("Microsoft.VisualStudio.TestTools.DataSource.XML", "|DataDirectory|\\TestFlows.xml", "flow", DataAccessMethod.Sequential)] 
public void TestMethod1() 
{ 
//Test Code 
} 


[ClassInitialize] 
public static void ClassInit(TestContext context) 
{ 
    DriverData driverData = new DriverData(); 
    driverData.DataGenerator(); 
} 

數據創建發生在ClassInitialize部分。當我將設置文件設置爲testsettings文件時,該項目運行時沒有任何問題。

當我將testsettings文件更改爲指向runsettings文件(因爲我有很多從runsettings文件傳遞的數據),我得到下面的錯誤行「單元測試適配器未能連接到數據源或讀取數據。有關解決此錯誤的詳細信息,請參閱「故障排除數據驅動的單元測試」

我很好奇,想知道什麼,當我運行使用testsettings要取得成功,但使用runsettings文件時發生的事情,在使用runsettings文件時得到所有問題以及如何避免這種情況。

另請參閱How to execute a line of code which is a data setup code in MSTest before all test

+0

「將testsettings文件更改爲指向runsettings文件」是什麼意思? –

回答

2

基本上,testsettings文件是爲了與舊的單元測試兼容。它在VS 2013中被runsettings所取代。在使用測試設置時,它會回退到某些傳統兼容模式,這些模式在諸如相對路徑和內容等行爲方面表現不同。不知道你的實際問題。

+0

謝謝你。我的問題是我需要在測試開始之前執行一些代碼行。這是使用testsettings但不使用runsettings文件 –

+0

您是否正在使用TestInitialize,ClassInitialize,AssemblyInitialize? –

+0

是的。我嘗試了所有選項,並且現在用盡了選項和初始化。感謝您的建議 –

相關問題