今天在寫單元測試時,發現了長久來覺得怪界的現象。這次一定要解開這個謎團
問題:AppDomain.CurrentDomain.BaseDirectory 的值會不同
步驟1:
建立一個測試專案,並在測試中加上
Console.WriteLine(AppDomain.CurrentDomain.BaseDirectory);
結果是
當程式需要讀取同目錄的檔案,例如 xml 檔案時,這是合理的。但在 MSTest 中,檔案會複製到 TestResults\xxxxx\Out 目錄下,(xxxxx 是與時間相關的目錄名稱)
步驟2:
將測試設定的選項Deployment 勾選
再執行測試一次。結果與步驟1相同。
步驟3:
關掉 Visual Studio 2010後再執行 Visual Studio 2010,重新執行該測試。竟然結果不一樣了!!
結論
雖然想寫單元測試,但這個結果未免也太不單元了。與環境相關,算不算是整合測試呢?
沒有留言:
張貼留言