NUnit是一個.NET上的單元測試框架。NUnit 1.x主要是移植JUnit 3.8。從2.0版本開始,NUnit進行了重寫和重新設計,使用Attributes代替特定的方法和相應的基類。
過去的五年時間裡發布了五個版本,最新版本是2.5 ,目前還是Alpha階段。這個發布支持以下特性:
數據驅動測試 —— 使用[TestCase] 和 [DataSource] ,允許通過Attributes向測試用例傳遞數據。
並行和分布式測試 —— 一個新的測試運行器(PUnit) ,允許在多台機器上並行運行測試。這個測試運行器設計目標是輔助用於服務器的壓力測試。
Additionnal斷言:支持在不需要訪問文件系統的情況下比較文件和目錄。為測試提供了更多的支持,無論代碼是否拋出異常。
運行CSUnit測試用例: CSUnitAddin支持運行另一個重要的.NET單元測試框架寫的單元測試。
RowTestExtension: 允許開發人員編寫RowTests替代NUnits[TestCase]。
此外文檔也更新了。
其他主要的特性
基於約束的斷言模式 :除了傳統的斷言,NUnit允許這樣寫: Assert.That(myString, new EqualConstraint("Hello")); 用戶可以靈活的增加自己的限制,充分參與到NUnit的生態系統中。
所支持的Attributes : Tests、Setup、Teardown、Fixture Setup/Teardown (每個命名空間的setup/teardown),……
Console和GUI測試運行。
Charlie Poole已經澄清了NUnit不同的版本之間的混淆:
有一些人混淆了幾個發布的版本或者同時對他們進行討論,所以我認為我要澄清一下:
NUnit 2.4.7是NUnit的最新的產品版本。我們建議大家在你的測試中使用這個版本。有一些相當關鍵的性能錯誤已經在最近的幾次發布的版本中修復了,所以你應該更新,即使你只差那麼一個或者兩個數字。參看你還缺少什麼 !
NUnit 3.0是一個在計劃中還沒有發布的下一代NUnit。我們把它叫做NUnit擴展測試平台,以區別於目前的NUnit框架。它將提供一個當前版本的一個超功能集,更詳細的描述可以看這裡。 我們將發布NUnit 3.0進展的進一步信息。
NUnit 2.5不是原先計劃發布的版本。2.4版本是原先遵循原先3.0的計劃版本。然而,很多人希望更快的發布其他的測試框架所提供的特性,這些正是我們的NUnit所缺乏的特性。
其他的.NET單元測試工具包括:MBunit、CSUnit、xUnit.Net、NBehave和Gallio——一個開放的,可擴展的和支持所有.NET測試工具的測試運行器。