2009-01-29 36 views
0

我有一些文件我想在單元測試中使用,但是我想讓這些文件相對於包含單元測試的dll的位置,這可能嗎?在我的單元測試中包含數據

換句話說,我已經包含了一個Resources文件夾,其中包含一些用於測試的單元測試文件,我標記了文件「Build Action」=「Content」和「Copy to Output Direct」=「Always Always」但那並不是我認爲會做的事。我認爲它會複製內容,但是當我的測試運行時,他們說這些文件不存在。

我寧願不通過放置顯式路徑來解決這個問題,因爲這些路徑會因開發者機器而異。

我也嘗試添加以下作爲預生成事件,也作爲生成後事件,但這也沒有解決我的問題。

xcopy "$(ProjectDir)Resources\*.*" "$(OutDir)Resources\*.*" /i /d /s /y

如果我使以前一個前或後建事件中,我看到數據被複制到我的OUTDIR,但它不會使它的TestResults文件夾是在資源文件夾也必須被複製爲測試有任何數據測試。

回答

2

unittest runner必須將您的unittest程序集複製到某個臨時文件夾。不要複製這些資源文件,而應考慮將它們包含爲嵌入式資源,然後使用Assembly.GetManifestResourceStream()從程序集中加載它們。

+0

謝謝!這種解決方案並不完全如我所想,我會去做,但它的工作原理。 – Dave 2009-01-29 17:33:43