2010-06-16 56 views
5

我發現DeploymentItemMSTest的VS2010 - DeploymentItem將文件複製到不同的位置在不同的機器

[TestClass(), DeploymentItem(@"TestData\")] 

是不是抄襲我的測試數據文件到同一位置測試時建成並在不同的機器上運行。

測試數據文件被複制到我的機器上測試項目的「bin \調試」目錄,但我朋友的機器上它們複製到「TestResults \ name_machine YY-MM-DD HH_MM_SS \輸出」 。

我的機器上的Bin \ Debug目錄可以用代碼來獲得:

string appDirectory = 
Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location); 

和相同的代碼將我的朋友的電腦上恢復TestResults\*name_machine YY-MM-DD HH_MM_SS*\Out

但這並不是真正的問題。問題是我製作的測試數據文件有一個文件夾結構,而且這個文件夾結構只在複製到bin \ debug時保存在我的機器上,而在我的朋友機器上只有這些文件被添加到TestResults\*name_machine YY-MM-DD HH_MM_SS*\Out目錄中。這意味着測試將通過我的機器並且失敗!

有沒有辦法確保DeploymentItem總是複製到bin \ debug文件夾?還是一種確保在DeploymentItem將文件複製到TestResults\*name_machine YY-MM-DD HH_MM_SS*\Out文件夾時保留文件夾結構的方法?

回答

2

玩了一段時間後,它看起來像對付它是保證每一個子目錄,你添加一個新的DeploymentItem確保您指定的「輸出目錄」,像這樣的最佳方式:

[TestClass(), DeploymentItem("TestData\\", "TestData"), 
DeploymentItem(@"TestData\\SubDir\\", "TestData\\SubDir")] 

這允許測試在您的機器上運行 - 希望這可以幫助別人!

+0

這正好解決了我的相對路徑問題。我有與存儲在app.config文件中定義的子文件夾和相對路徑中的文件相同的問題。 Thx – 2012-06-06 18:53:43

+1

'DeploymentItem'屬性只能定位方法。你寫的工作怎麼樣? – 2012-11-29 17:02:14

相關問題