Dot-Net

從自動化測試中獲取程序集的目錄

  • November 21, 2012

我正在嘗試編寫集成測試以涵蓋對我的應用程序的重大重構(我想編寫單元測試,但距離可單元測試還很遠)。我正在使用 Visual Studio 2010 SP1、Resharper 和 NUnit。

我目前的問題是找不到一致的方法來獲取執行程序集的目錄;我嘗試的兩種方法在單獨執行應用程序時或在從 Visual Studio 調試時有效,但在從 NUnit 或 Resharper 執行測試時它們會失敗。這是程式碼(VB.NET):

'Method 1    
Core.ConfigFile = My.Application.Info.DirectoryPath + "\" + DRA_CONFIG_FILE
'Method 2
Core.ConfigFile = IO.Path.GetDirectoryName(Reflection.Assembly.GetExecutingAssembly().Location) + "\" + DRA_CONFIG_FILE

當我使用 Resharper 調試測試時,我得到了類似的結果,這兩種方法都有:

C:\Documents and Settings\Tomas\Local Settings\Temp\0xl3rbd5.4qn\MGClient.Test\assembly\dl3\2a373977\60b182bb_e5c9cc01\DRA.config

(應該是 D:\SVN.DRA.WorkingCopy\DRA.Test\Integration\MGClient.Test\bin\Debug\DRA.config)

我怎樣才能得到正確的路徑?

您需要在 Resharper 中禁用卷影複製:

Visial Studio 菜單 -> Resharper -> 選項 -> 工具 -> 單元測試

取消選擇正在測試的捲影副本程序集

當我使用 Resharper 調試測試時,我得到了類似的結果,這兩種方法都有:

C:\Documents and Settings\Tomas\Local Settings\Temp\0xl3rbd5.4qn\MGClient.Test\assembly\dl3\2a373977\60b182bb_e5c9cc01\DRA.config

在 NUnit測試載入器設置中關閉卷影複製- 高級

引用自:https://stackoverflow.com/questions/8717349