從安裝到配置
首先到官網(wǎng)http://www.nunit.org/下載如下圖的資料,安裝NUnit-2.6.1.msi包。
然后掛在VS2010外部工具這個(gè)地方來(lái)使用,工具—>外部工具—>添加—>標(biāo)題:Nunit—>命令:安裝路徑—>確定。
然后打開(kāi)Nunit,工具—>Nunit。
VS2010 NUnit 整合插件 Visual Nunit 2010下載:
http://visualstudiogallery.msdn.microsoft.com/c8164c71-0836-4471-80ce-633383031099,下載安裝完畢就能在 VS2010 的 視圖->其它窗體 中看到 Visual Nunit了(或使用快捷鍵Ctrl + F7),打開(kāi)該視圖,將之拖到合適的位置。打開(kāi)如下圖,會(huì)自動(dòng)加載測(cè)試的方法。
使用入門(mén)
建立項(xiàng)目如下圖(注意項(xiàng)目依賴,程序集引用):
//Number.csnamespace BaseClass{ public class Number { public static int TestMethod() { return 29; } }}
//NunitTestClass.csnamespace NunitTestClass{ /// <summary> /// 初行-博客園 http://zxlovenet.VEVb.com /// </summary> /// 這是一個(gè)測(cè)試類 [NUnit.Framework.TestFixture] public class NunberTest { //測(cè)試用的方法 //方法必須是public,返回類型void,無(wú)參 [Test] public void GetTestAreEqual() { int test1 = BaseClass.Number.TestMethod(); //驗(yàn)證test1的值必須是29才能通過(guò) Assert.AreEqual(29, test1); } [Test] public void GetTestGreater() { int test1 = BaseClass.Number.TestMethod(); //驗(yàn)證test1de值必須大于0才能通過(guò) Assert.Greater(test1, 30); } }}
然后F6生成,找到生成文件如下圖:
VS2010下,工具—>Nunit,打開(kāi)后 File—>New PRoject…,保存到一個(gè)位置,然后點(diǎn)Fiel—>Save。添加程序集:Project—>Add Assembly…,找到測(cè)試文件如下圖:
打開(kāi)后的效果如圖:
點(diǎn)擊Run執(zhí)行測(cè)試,效果如下圖:
通過(guò)上圖可以看出,通過(guò)測(cè)試的會(huì)打“√”,無(wú)法通過(guò)測(cè)試的打“×”。
博客園-初行 2014.3.10編輯
讓我們更進(jìn)一步看一下測(cè)試運(yùn)行器窗口的布局。在右邊面板的中間,可以看到測(cè)試進(jìn)度條。進(jìn)度條的顏色反映了測(cè)試執(zhí)行的狀態(tài):
l 綠色 描述目前所執(zhí)行的測(cè)試都通過(guò)
l 黃色 意味某些測(cè)試忽略,但是這里沒(méi)有失敗
l 紅色 表示有失敗
底部的狀態(tài)條表示下面的狀態(tài):
l 狀態(tài).說(shuō)明了現(xiàn)在運(yùn)行測(cè)試的狀態(tài)。當(dāng)所有測(cè)試完成時(shí),狀態(tài)變?yōu)镃ompleted.運(yùn)行測(cè)試中,狀態(tài)是Running: <test-name> (<test-name>是正在運(yùn)行的測(cè)試名稱)。
l Test Cases說(shuō)明加載的程序集中測(cè)試案例的總個(gè)數(shù)。這也是測(cè)試樹(shù)里葉子節(jié)點(diǎn)的個(gè)數(shù)。
l Tests Run 已經(jīng)完成的測(cè)試個(gè)數(shù)。
l Failures 到目前為止,所有測(cè)試中失敗的個(gè)數(shù).
l Time 顯示運(yùn)行測(cè)試時(shí)間(以秒計(jì))
File主菜單有以下內(nèi)容:
l New Project允許你創(chuàng)建一個(gè)新工程。工程是一個(gè)測(cè)試程序集的集合。這種機(jī)制讓你組織多個(gè)測(cè)試程序集,并把他們作為一個(gè)組對(duì)待。
l Open 加載一個(gè)新的測(cè)試程序集,或一個(gè)以前保存的NUnit工程文件。
l Close關(guān)閉現(xiàn)在加載的測(cè)試程序集或現(xiàn)在加載的NUnit工程。
l Save 保存現(xiàn)在的Nunit工程到一個(gè)文件。如果正工作單個(gè)程序集,本菜單項(xiàng)允許你創(chuàng)建一個(gè)新的NUnit工程,并把它保存在文件里。
l Save As允許你將現(xiàn)有NUnit工程作為一個(gè)文件保存。
l Reload 強(qiáng)制重載現(xiàn)有測(cè)試程序集或NUnit工程。NUnit-Gui自動(dòng)監(jiān)測(cè)現(xiàn)加載的測(cè)試程序集的變化。
當(dāng)程序集變化時(shí),測(cè)試運(yùn)行器重新加載測(cè)試程序集。(當(dāng)測(cè)試正運(yùn)行時(shí),現(xiàn)在加載的測(cè)試程序集不會(huì)重新加載。在測(cè)試運(yùn)行之間測(cè)試程序集僅可以重新加載。一個(gè)忠告:如果測(cè)試程序集依賴另外一個(gè)程序集,測(cè)試運(yùn)行器不會(huì)觀察任何依賴的程序集。對(duì)測(cè)試運(yùn)行器來(lái)說(shuō),強(qiáng)制一個(gè)重載使全部依賴的程序集變化可見(jiàn)。
l Recent Files 說(shuō)明5個(gè)最近在NUnit中加載的測(cè)試程序集或NUnit工程(這個(gè)列表在Windows注冊(cè)表,由每個(gè)用戶維護(hù),因此如果你共享你的PC,你僅看到你的測(cè)試)。最近程序集的數(shù)量可以使用Options菜單項(xiàng)修改,可以訪問(wèn)Tool主菜單。
l Exit退出。
l View菜單有以下內(nèi)容:
l Expand一層層擴(kuò)展現(xiàn)在樹(shù)中所選節(jié)點(diǎn)
l Collapse 折疊現(xiàn)在樹(shù)中選擇的節(jié)點(diǎn)
l Expand All遞歸擴(kuò)展樹(shù)中所選節(jié)點(diǎn)后的所有節(jié)點(diǎn)
l Collapse All遞歸折疊樹(shù)中所選節(jié)點(diǎn)后的所有節(jié)點(diǎn)
l Expand Fixtures擴(kuò)展樹(shù)中所有代表測(cè)試fixture的節(jié)點(diǎn)。
l Collapse Fixtures 折疊樹(shù)中所有代表測(cè)試fixture的節(jié)點(diǎn)。
l Properties 顯示樹(shù)中現(xiàn)所選節(jié)點(diǎn)的屬性。
l Tools 菜單由這些項(xiàng):
l Save Results as xml作為一XML文件保存運(yùn)行測(cè)試的結(jié)果。
l Options讓你定制NUnit的行為。
l 現(xiàn)在看看右邊,你已經(jīng)熟悉Run按鈕和進(jìn)度條。這里還有一個(gè)緊跟Run按鈕的Stop按鈕:點(diǎn)擊這個(gè)按鈕會(huì)終止執(zhí)行正運(yùn)行的測(cè)試。進(jìn)度條下面是一個(gè)文本窗口,在它上方,由以下4個(gè)標(biāo)簽:
l Errors and Failures 窗口顯示失敗的測(cè)試。在我們的例子里,這個(gè)窗口是空。
l Tests Not Run 窗口顯示沒(méi)有得到執(zhí)行的測(cè)試。
l Console.Error 窗口顯示運(yùn)行測(cè)試產(chǎn)生的錯(cuò)誤消息。這些此消息是應(yīng)用程序代碼使用Console.Error輸出流可以輸出的。
l Console.Out窗口顯示運(yùn)行測(cè)試打印到Console.Error輸出流的文本消息。
參考資料:http://confach.VEVb.com/archive/2005/06/20/177817.aspx
總結(jié)
NUnit有這樣幾個(gè)優(yōu)點(diǎn)
1.獨(dú)立于IDE,可以單獨(dú)運(yùn)行。也可以以命令行方式運(yùn)行。(vs應(yīng)該也可以吧?)
2.版本更新快。(我不認(rèn)為這是個(gè)優(yōu)點(diǎn),而且我也并不覺(jué)得快啊。)
3.VS的UT工具運(yùn)行速度慢。(不一定)
NUite也有這樣幾個(gè)缺點(diǎn)
1.不支持Debug,要安裝TestDriven.NET才支持。
2.不支持代碼覆蓋率的查看,要和NCover一起用。而VS的代碼覆蓋很清楚。
3.不能自動(dòng)生成測(cè)試代碼,也許和CodeSmith一起用好些,不過(guò)后著要收費(fèi)的。
心情不爽,發(fā)篇隨筆調(diào)整用一下心情~
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注