我有一個單元測試項目及其自己的app.config
文件,它是由正在測試的目標項目定義的真實配置文件的模擬。這個模擬文件是由單元測試代碼(不是通過目標項目)加載和處理的,如果我只在這個測試項目中運行測試,它就能正常工作。ConfigurationManager.GetSection(sectionName)在執行單元測試時返回空值
ConfigurationManager.GetSection(sectionName)
但是,如果我從幾個測試項目,以及其他測試項目運行測試相關項目進行之前,上述語句返回null
。如果先討論測試項目,則加載配置文件沒有問題。
如何修復單元測試中配置文件的加載以正確工作?
我面臨着類似的問題與測試項目和SQLite每次運行測試項目一個新的Sqlite數據庫被創建並且主項目沒有發生,所以爲了測試我必須創建正常的控制檯應用程序而不是測試項目。 我不知道這些信息是否有幫助某些情況下測試項目不太好尤其是當涉及到處理外部資源什麼讓我更加奇怪,我面臨與視覺2010這個問題,但是當我升級到2012年一切工作就好! – thealghabban
我認爲你只能有一個活動的配置文件,第一個是用於所有項目的配置文件,當你有正常的項目,但在測試項目中不是這樣,所以將web配置複製(合併)到所有項目,看看它是否有效。 –
因此,您在一個單元測試項目中有一個app.config,其他單元測試項目依賴於該app.config?這不是非常可持續的。我會建議複製該模擬app.config到每個測試項目或使用下面的@Ouarzy模擬建議。這也取決於你正在測試的是:ConfigurationManager.GetSection()調用還是別的。 –