單元測試對程序員來講是很是重要的一門技術,可是在實際編程中卻每每被程序員所忽視。微軟的VS開發工具爲咱們提供了強大的單元測試環境,在VS當中能夠直接對類庫項目進行測試,極大的方便了程序員的自我糾錯能力。除了官方的解決方案以外,還有一種很是好的免費開源的第三方測試工具,那就是NUnit。它是從Java中著名的JUnit單元測試框架移植過來,這個能夠從官網中獲得答案,http://www.nunit.org/。php
在NUnit官網的下載頁面http://www.nunit.org/index.php?p=download,列出了其全部發布過的版本,當前最新的版本號爲2.6.3。程序員
msi是安裝版的NUnit,而bin是文件版的,還有src是NUnit的源代碼以及doc是NUnit的幫助手冊。編程
建議專業用戶下載bin版本,即NUnit-2.6.3.zip。裏面有綠色版的NUnit用戶界面程序,開發用的dll文件以及doc文檔手冊。c#
下載好zip包後,解壓到磁盤目錄下。框架
好,下面就正式演示使用NUnit進行單元測試。ide
便於簡單演示,咱們用四則運算來模擬測試的過程。工具
首先在VS2012當中創建一個類庫項目,起名爲NUnitTest,並創建一個四則運算類Calculator。單元測試
namespace NUnitTest { public class Calculator { public static double Add(double a, double b) { return a + b; } public static double Sub(double a, double b) { return a - b; } public static double Mutiply(double a, double b) { return a * b; } public static double Divide(double a, double b) { return a / b; } } }
就是一個簡單的加減乘除方法。開發工具
而後咱們再創建一個單元測試類UnitTest,用於進行單元測試。測試
namespace NUnitTest { [TestFixture] public class UnitTest { public double NumA { get; set; } public double NumB { get; set; } [SetUp] public void SetUp() { NumA = 10; NumB = 20; } [Test] public void TestAdd() { double result = Calculator.Add(NumA, NumB); Assert.AreEqual(result, 30); } [Test] public void TestSub() { double result = Calculator.Sub(NumA, NumB); Assert.LessOrEqual(result, 0); } [Test] public void TestMutiply() { double result = Calculator.Mutiply(NumA, NumB); Assert.GreaterOrEqual(result, 200); } [Test] public void TestDivide() { double result = Calculator.Divide(NumA, NumB); Assert.IsTrue(0.5 == result); } } }
這裏面在方法前都加了[Test]用於標記該方法爲單元測試方法,須要添加引用nunit.framework.dll文件。這個文件能夠在下載好的zip包中的NUnit-2.6.3\bin\framework目錄找到。而方法內部使用了Assert類的靜態方法對預期結果進行斷言。
下面就能夠使用NUnit工具來進行測試了。咱們將NUnitTest類庫項目右鍵屬性中的調試節點,設置啓動動做爲啓動外部程序,而後設置路徑爲下載zip包中的nunit.exe。如:C:\Users\guwei4037\Desktop\NUnit-2.6.3\bin\nunit.exe。
運行類庫項目,這時候爲咱們啓動了NUnit的gui工具。咱們按照下面的步驟進行操做。
一、選擇File——New Project,指定NUnit項目文件到指定目錄。
二、選擇Tools——IDE Support——Visual Studio,勾上選項,點擊OK。
三、選擇Project——Add VS Project
在彈出的對話框中找到NUnitTest項目的csproj文件並打開。
會看到已經把咱們項目中須要測試的方法都加載到了NUnit的GUI中。
咱們只須要點擊右側的「RUN」按鈕,運行測試便可。
如咱們所願,全部單元測試都經過了。
這是經過運行外部程序(NUnit的GUI界面)來達到單元測試的效果的。
總感受很麻煩,還要調用外部的應用程序,有沒有簡單點的最好可以跟VS工具緊密結合的方式來進行NUnit單元測試呢?答案是確定的。
咱們在VS中選擇工具菜單欄下的擴展和更新,選擇聯機並在搜索框中輸入NUnit。
找到NUnit Test Adapter,下載安裝便可。按照好以後關閉VS,重啓一下就行了。
咱們打開類庫項目中的UnitTest類,在右鍵彈出的菜單中點擊運行測試。
運行結束後,會在左側的測試資源管理器當中顯示本次操做的結果。
是否是很方便啊?直接在VS當中集成了,不用去配置外部程序了。
相信經過上面的介紹,你已經學會如何在VS中集成NUnit進行單元測試了。
關於更多的NUnit的參考文檔,請訪問:http://www.nunit.org/index.php?p=docHome&r=2.6.3。