我有以下設置:從類庫訪問App.Config中設置通過單元測試的項目稱爲
- ASP.net 3.5網站項目
- C#類庫與業務邏輯
- C#類庫單元測試
業務邏輯庫執行所有數據庫訪問。它通過訪問System.Configuration.ConfigurationManager.ConnectionStrings從Web站點的web.config文件獲取連接字符串。當這個庫被網站調用時,這個工作正常,因爲庫查找調用者的配置。
我希望能夠通過單元測試類庫來測試我的業務邏輯。我已經在測試類庫的根目錄中放置了一個App.config文件。從我讀到的內容來看,當測試庫調用作爲業務邏輯庫一部分的數據訪問過程時,應該訪問和使用測試庫的App.config文件中的連接設置。但是,當我嘗試運行我的單元測試時,我收到錯誤,表示測試庫的App.config文件(和/或其內容)未被成功訪問。
我的配置屬性的檢索(從業務邏輯庫內)看起來是這樣的:
public SqlConnection MainConnection {
get {
string conn = "";
try {
conn = System.Configuration.ConfigurationManager.ConnectionStrings["connString"].ConnectionString;
} catch {
// might be calling from test project. Need to reference app settings
conn = System.Configuration.ConfigurationManager.AppSettings["connString"];
}
return new SqlConnection(conn);
}
}
當這是從網站項目調用時,它的工作原理。從單元測試中,conn變量永遠不會被設置爲任何東西(我也嘗試過使用System.Configuration.ConfigurationSettings.AppSettings,而不是使用相同的結果)。在NUnit GUI中調用時,如何使業務邏輯類庫成功檢索單元測試類庫設置,需要做些什麼?
NUnit是您應該在您的問題中包含的重要信息,因爲我介紹了您描述的與Visual Studio的測試工具配合使用的場景。測試工具從測試項目中的app.conig讀取配置。 – 2009-08-23 12:30:24
剛剛添加到我從NUnit GUI調用測試的問題中。 – 2009-08-23 12:44:02
它應該像你所描述的那樣工作。您確定,您的測試項目的app.config中包含所有相關設置嗎?你可能會困惑AppSettings和ApplicationSettings?你能發佈兩個配置文件的相關部分嗎? – Manu 2009-08-23 12:51:48