.NET測試工具NUnit2.5六大特性一覽
盡管只是一個小的版本號變化(前一個版本是2.4.8),NUnit2.5經過將近一年的開發后,提供了許多全新的功能。身為NUnit的開發者和咨詢師,Charlie Poole撰寫了一篇特性列表。
.NET測試工具NUnit2.5特性1
數據驅動測試。測試方法可能需要參數和數據,它們可能以多種方式提供內聯、來自另外一個獨立的方法或類、任意方式。該特性提供了一個簡潔的方法,用之表述一組實例,以在運行中的單個測試用例中使用。
.NET測試工具NUnit2.5特性2
原則。傳統的、基于實例的測試允許你選擇一組或多組值,用于測試類似程序。而另一方面,原則允許你表述一般化的要求,可以編寫一個測試,能夠通過傳遞給它的任何值,只要這些值滿足約束條件。
.NET測試工具NUnit2.5特性3
內聯期望異常測試。 引入 Assert.Throws斷言方法、以及更強大的約束表達式Throws.Exception,Throws.InstanceOf和Throws.TypeOf之后,異常測試邏輯現在可以移入到任何測試、或是其他必要的斷言之中了。
.NET測試工具NUnit2.5特性4
泛型支持和原因5Lambda表達式支持。
.NET測試工具NUnit2.5特性5
進程外執行和運行時選擇。NUnit2.5擴展了AppDomain的隔離方式,以在一個或多個隔離進程中運行。除了提供隔離之外,這還允許測試使用的.NET運行時與NUnit正在運行的.NET運行時不同。
.NET測試工具NUnit2.5特性6
源代碼顯示。在Gui的錯誤與失敗標簽頁中,新的堆棧跟蹤顯示可以展示出發生問題的源代碼,只要源代碼可以訪問,并且程序的編譯帶有調試信息。目前,支持C#語法著色。
版本發行說明中提供了更多細節,并介紹了其他特性。
SimoneBusoli指出新的約束條件模型具備很強的表達能力。此外,他還喜歡新的斷言和用來定制這些斷言的修飾符。他特別指出“讓修飾符可用于內聯方法,這可真不錯。因為在非常多的時候,你要比較兩個對象的包含或是相等關系,而且你希望重寫這些對象在特定領域中相等的概念。”
OlofBjarnason發現新的Timeout屬性在開發循環相關代碼時非常有用。過去,當編寫的無限次循環中出現錯誤時,你必須殺掉NUnit進程。現在用Timeout屬性就可以中止測試了。
另外,Jamie Cansdale也發布了新版本的TestDriven.NET,該工具允許開發人員在VisualStudio中運行自己的NUnit(以及其他框架)。
Charlie承諾未來將會回歸到更小的版本號、更頻繁的發布方式。NUnit3.0路線圖(pdf格式)中承諾支持更多的測試運行器(包括Web運行器,可以從Web服務器中執行測試)。測試引擎層將支持分布式與并行測試運行方式,亂序測試以及事務式測試行為。
其他.NET單元測試工具還有MBunit、CSUnit、xUnit.Net、NBehave和Gallio,Gallio是一個開放、可擴展的、中立的測試運行器,設計者希望它支持所有的.NET測試工具。
【編輯推薦】