2013-11-04 28 views
4

在VS2012,我有一堆(MS)的單元測試,它使用不同的XML /文本文件我已經存儲在相同的文件夾測試文件類。運行測試後AppDomain.CurrentDomain.BaseDirectory更改了嗎?

我打開使用File.OpenRead(AppDomain.CurrentDomain.BaseDirectory +「文件」)

這些文件,如果我只是運行一個測試,它的工作原理,該文件被讀取。

如果我同時運行所有的測試中,BaseDirectory返回不同的路徑(TestResults /部署/ currentdatetime輸入/輸出),顯然無法找到該文件。

怎麼辦?

謝謝!

+0

嘗試[\ [DeploymentItem(@ 「您的相對文件路徑」)\] [1]爲每個測試屬性。 另外我想你需要將所有的文件添加到項目中,並將它們的屬性設置爲CopyToOutputDirectory設置爲「CopyAlways」。 http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.testtools.unittesting.deploymentitemattribute.aspx – Spock

+0

1.沒有工作:(2.已經做到了,它們被複制,同時運行多個測試時 – user2713516

+0

的basedirectory變化路徑,你剛纔用DeploymentItem attrubute裝飾?測試類或測試方法? – Elena

回答

-1

嘛沒能正常工作,而且似乎像谷歌認爲它永遠不會。

解決方法是簡單地編輯喜歡的路徑:

[ClassInitialize] 
    public static void ClassInitialize(TestContext context) 
    { 
     string deployDir = AppDomain.CurrentDomain.BaseDirectory; 
     string[] rows = deployDir.Split(new string[] { "TestResults" }, StringSplitOptions.None); 
     string projectPath = rows[0].ToString(); 
     _path = projectPath + "newpath\\"; 
    } 
相關問題