2011-05-18 71 views
5

我有一個組件從標準.NET配置(app.config)文件讀取一些配置。運行NUnit測試時錯誤的配置文件(TD.NET)

當我運行這個組件(使用TD.NET)的單元測試(NUnit)時,我注意到配置文件沒有被讀取。

在的AppDomain.CurrentDomain.SetupInformation.ConfigurationFile

檢查我注意到,它的值被設定爲C:\用戶\ ltal \應用程序數據\本地\ TEMP \ tmp6D2F.tmp(一些臨時隨機locaiton)。

這是爲什麼發生的原因嗎? (是NUnit的或TD.NET的錯嗎?)

我想我可以設置此SetupInformation反對自己的測試的緣故,還沒有嘗試過呢,但仍然不知道爲什麼它被這樣創造,而不是作爲默認。

回答

3
  • 要解決這個問題,你可以在你的單元測試項目中創建一個app.config。這將在你的單元測試中被調用來代替主要的app.config。然後,您可以在單元測試中更改該app.config中的值,以便更輕鬆地測試不同的值和配置,即可以在運行測試之前使用特定值設置測試app.config。

    ConfigurationManager.AppSettings[""] = "";

  • 另一種選擇可能是放置在您的主項目的Settings.setting文件設置。然後,您不必在單元測試項目中更改任何內容。關於設置和app.config中的區別某些鏈接 - MSDN forumsStackOverflowUser Settings - MSDN

  • 當然,第三種辦法則是通過引入接口,以消除從組件在app.config的依賴並注入的依賴插入到組件中,以便輕鬆地將其嘲諷出來並進行單元測試。

+0

設置和配置有什麼區別?你有鏈接嗎?應該去哪裏..? – 2011-05-18 15:44:25

+0

將設置文件保存到C:\ Documents and Settings下的某個位置,通常用於在運行時期間更改用戶特定的設置(如背景顏色),並可能會持續升級應用程序。我通常會在App.Config文件中存儲連接字符串等內容。編輯包含鏈接。 – 2011-05-18 15:50:28