為所有可能的命令行參數運行MSTEST.EXE/?。當它指定輸出文件名稱的時候需要ResultsFile。你也需要設置TestMetaData參數或者TestContainer參數以此分別的顯示出源數據文件或者測試容器。
但是,我對于MSTestTask的長期計劃就是擴展測試屬性以允許通配符能夠為測試名稱的執行被通過。那將允許你容易的執行僅符合具體前綴的那些測試。借助在TestContainer屬性中被通過的程序集,這工作將僅僅是一系列的反射,查找擁有TestClassAttribute的類庫和一些符合規范表達的帶有TestMethodAttribute的方法。
MSTestTask其他的操作部分來自于RunTests.Targets文件,你可以在.\Build包含源代碼的目錄中找到這個文件。它包括了非?岬腅xecuteAllTests對象,這個對象在你指定的目錄中開始,在整個結構中查找所有的單元測試,GenericTests,WebTests和OrderedTests,然后執行它們。你可以認為ExecuteAllTests對象對于單元測試是一個來說自動衰退測試。當你添加新的測試時,它將自動的執行它們。在代碼下載中包含的RunTests.Targets代碼非常明智的使用排除文件來獲得我們希望的東西。為了查看一個使用中的RunTests.Targets例子,查看一下SmokeTest.proj,它為所有的代碼顯示出smoke測試。
在.\Build目錄中最后的TARGETS文件是MSTestCleanUp.Targets。就像它名稱所暗示的那樣,它的職責就是查找包含TestResults的所有目錄作為一個路徑然后刪除它們。它是使用轉換的一個很好的例子,就像MSBuild中的RemoveDuplicates任務一樣。使用MSTestClean-Up.Targets,你就不用怕其他的文件毀壞你的源目錄。
掩飾,包裝
如果你不說,我將對Visual Studio 2005中新的單元測試工具非常興奮。像ASP.NET和DataGrids這樣的程序在此書中受到了所有的關注,但是當你努力按時獲得程序時,測試工具將會帶來很大的影響。我可以保證,你在使用測試工具上花費的時間越多,你的代碼將會變的更好。
Tip 73 你可以控制一個單元測試默認的編程語言和當一個新的單元測試被單元測試向導創建后哪些條目能被添加到里面。來到選項對話框,擴展測試工具節點,然后轉到測試項目屬性頁面。在那,你將看到默認的測試項目類型combobox和每個語言類型的默認文件選擇。如果你像我一樣,在你創建了第二個單元測試后你將清除“About Test Projects”介紹文件。
Tip 74 試圖將一個程序集中的所有的單元測試保存到一個單一的測試程序集。那個一對一的映射來自于維護的觀點。但是,當程序集增長時,測試數量將會變得非常大。我喜歡將前綴放到測試方法的名稱上,因為這個它們測試的特性有關。這樣可以很容易的分組。例如,在Bugslayer.Utility.Tests.DLL程序集中,關于GlobalMessageBox類的測試開始于”GNB_”
文章來源于領測軟件測試網 http://www.kjueaiud.com/