因為小弟在測試時會開啟部署,產生測試DB,寫Log等等,這樣TestResults的Out會有不少檔案,我嫌硬碟IO太慢,就將TestResults改到RamDisk中。
2012-01-16
Visual Studio 測試系列 : 更改TestResults位置
- 10587
- 0
- Visual Studio
因為小弟在測試時會開啟部署,產生測試DB,寫Log等等,這樣TestResults的Out會有不少檔案,我嫌硬碟IO太慢,就將TestResults改到RamDisk中。
在建立Visual Studio測試專案的時候,預設會建立二個測試設定檔,Local.testsettings與TraceAndTestImpact.testsettings,這二個只有設定在部分設定有不同如圖一,原本我會修改Local.testsettings,讓Visual Studio執行測試時會用x64執行,TestResults放到R槽(RamDisk)等等,但是只有我自己電腦可以執行(我的電腦在同事間比較好,有的同事記憶體太少不能用RamDisk),使用這些設定可能會讓同事無法執行測試,最後我只好建立自己的測試設定檔。
Visual Stuido的單元測試有3種Initialize與Cleanup,讓開發測試時,可以在TestMethod執行前做一些初始化,結束後做一些清除,而這3種Initialize與Cleanup各針對了不同時期,如:我猜鮮少人知道的Assembly的Initialize與Cleanup,是在一個測試專案的所有TestMethod執行前呼叫Initialize,與一個測試專案所有TestMethod結束後呼叫Cleanup。
為什麼要寫一個DateTime的Stub呢?
在有些情況必需判斷今天,如不同的節日,不同的Logo,因為System.DateTime.Now或Today,沒有辦法模擬,寫Unit Test時就沒有辦法測各個時間點的反應,總不可能做個測試要改系統時間吧。