2011-09-01 61 views
6

我是新來的單元測試,所以我可能誤解的東西大了,但我一直要求創建我的WCF服務的一些單元測試。這是一個非常簡單的服務,它執行存儲過程並返回結果。在我操作的第二行是這樣的:在部署該服務時失敗的單元測試,由於缺少config文件

string conn = ConfigurationManager 
    .ConnectionStrings["AtlasMirrorConnectionString"].ConnectionString; 

一切正常,但在單元測試,它似乎是配置文件變得不可見。 ConfigurationManager.ConnectionStrings["AtlasMirrorConnectionString"]成爲空引用並相應拋出。

怎樣包括測試我的配置文件?現在,我能夠測試的唯一行爲是缺少的配置文件,這還不是特別有用的處理。

回答

5

又問一次又一次和我回答上週本週還有:)

,如果你有你的單元測試的另一個項目(VS生成的測試項目,類庫等)只是創建爲單元測試項目中的應用程序配置,並把相同的配置密鑰爲你在有效的項目中有效。

當然,我很簡單,因爲你可以絕對想要定製那些具有特定測試值的鍵,但作爲一個起點複製什麼工作,然後定製,如果你想指向另一個數據庫,機器等...... :)

+1

對不起相同的價值觀,我做了搜索,但couldn」在任何地方都能找到。 – recursive

+1

該解決方案將工作,但它是不是一個很好的長期選擇。最好有一個解決方案,在解決方案發生變化時,配置文件將保持最新。 – zlsmith86

3

你必須來裝點測試類或方法與DeploymentItemAttribute部署配置文件到test目錄。

使用這樣的事情在你的TestClass(這裏假設你有地方在app.config的拷貝到你的testclasses):

[DeploymentItem("app.config")] 
3

如果你希望你的單元測試總是爲你的項目,那麼你可以使用下面的行作爲測試項目生成後事件

copy /Y "$(SolutionDir)ProjectName\App.config" "$(TargetDir)TestProjectName.dll.config"