單元測試資料彙總

来源:http://www.cnblogs.com/shouce/archive/2016/01/09/5115413.html
-Advertisement-
Play Games

來源:http://zxlovenet.cnblogs.com聲明:本文原創發表於博客園,作者為初行本文歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則視為侵權。從安裝到配置首先到官網http://www.nunit.org/下載如下圖的資料,安裝NUnit-2.6....


來源: http://zxlovenet.cnblogs.com 
聲明: 本文原創發表於博客園,作者為初行本文歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則視為侵權。

從安裝到配置

 

首先到官網http://www.nunit.org/下載如下圖的資料,安裝NUnit-2.6.1.msi包。

 

 

然後掛在VS2010外部工具這個地方來使用,工具—>外部工具—>添加—>標題:Nunit—>命令:安裝路徑—>確定。

 

然後打開Nunit,工具—>Nunit。

 

VS2010 NUnit 整合插件 Visual Nunit 2010下載:

http://visualstudiogallery.msdn.microsoft.com/c8164c71-0836-4471-80ce-633383031099,下載安裝完畢就能在 VS2010 的 視圖->其它窗體 中看到 Visual Nunit了(或使用快捷鍵Ctrl + F7),打開該視圖,將之拖到合適的位置。打開如下圖,會自動載入測試的方法。

 

 

使用入門

 

建立項目如下圖(註意項目依賴,程式集引用):

 

 

1 2 3 4 5 6 7 8 9 10 11 //Number.cs namespace BaseClass {     public class Number     {         public static int TestMethod()         {             return 29;         }     } }

 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 //NunitTestClass.cs namespace NunitTestClass {     /// <summary>     /// 初行-博客園 http://zxlovenet.cnblogs.com     /// </summary>     /// 這是一個測試類     [NUnit.Framework.TestFixture]     public class NunberTest     {         //測試用的方法         //方法必須是public,返回類型void,無參         [Test]         public void GetTestAreEqual()         {             int test1 = BaseClass.Number.TestMethod();             //驗證test1的值必須是29才能通過             Assert.AreEqual(29, test1);         }         [Test]         public void GetTestGreater()         {             int test1 = BaseClass.Number.TestMethod();             //驗證test1de值必須大於0才能通過             Assert.Greater(test1, 30);         }     } }

 

然後F6生成,找到生成文件如下圖:

 

VS2010下,工具—>Nunit,打開後 File—>New Project…,保存到一個位置,然後點Fiel—>Save。添加程式集:Project—>Add Assembly…,找到測試文件如下圖:

 

 

打開後的效果如圖:

 

 

點擊Run執行測試,效果如下圖:

 

通過上圖可以看出,通過測試的會打“√”,無法通過測試的打“×”。

 

讓我們更進一步看一下測試運行器視窗的佈局。在右邊面板的中間,可以看到測試進度條。進度條的顏色反映了測試執行的狀態:

l  綠色 描述目前所執行的測試都通過

l  黃色 意味某些測試忽略,但是這裡沒有失敗

l  紅色 表示有失敗

 

底部的狀態條表示下麵的狀態:

 

l  狀態.說明瞭現在運行測試的狀態。當所有測試完成時,狀態變為Completed.運行測試中,狀態是Running: <test-name> (<test-name>是正在運行的測試名稱)。

l  Test Cases說明載入的程式集中測試案例的總個數。這也是測試樹里葉子節點的個數。

l  Tests Run 已經完成的測試個數。

l  Failures  到目前為止,所有測試中失敗的個數.

l  Time  顯示運行測試時間(以秒計)

 

File主菜單有以下內容:

 

l  New Project允許你創建一個新工程。工程是一個測試程式集的集合。這種機制讓你組織多個測試程式集,並把他們作為一個組對待。

l  Open 載入一個新的測試程式集,或一個以前保存的NUnit工程文件。

l  Close關閉現在載入的測試程式集或現在載入的NUnit工程。

l  Save 保存現在的Nunit工程到一個文件。如果正工作單個程式集,本菜單項允許你創建一個新的NUnit工程,並把它保存在文件里。

l  Save As允許你將現有NUnit工程作為一個文件保存。

l  Reload 強制重載現有測試程式集或NUnit工程。NUnit-Gui自動監測現載入的測試程式集的變化。

 

當程式集變化時,測試運行器重新載入測試程式集。(當測試正運行時,現在載入的測試程式集不會重新載入。在測試運行之間測試程式集僅可以重新載入。一個忠告:如果測試程式集依賴另外一個程式集,測試運行器不會觀察任何依賴的程式集。對測試運行器來說,強制一個重載使全部依賴的程式集變化可見。

 

l  Recent Files  說明5個最近在NUnit中載入的測試程式集或NUnit工程(這個列表在Windows註冊表,由每個用戶維護,因此如果你共用你的PC,你僅看到你的測試)。最近程式集的數量可以使用Options菜單項修改,可以訪問Tool主菜單。

l  Exit退出。

l  View菜單有以下內容:

l  Expand一層層擴展現在樹中所選節點

l  Collapse 摺疊現在樹中選擇的節點

l  Expand All遞歸擴展樹中所選節點後的所有節點

l  Collapse All遞歸摺疊樹中所選節點後的所有節點

l  Expand Fixtures擴展樹中所有代表測試fixture的節點。

l  Collapse Fixtures 摺疊樹中所有代表測試fixture的節點。

l  Properties 顯示樹中現所選節點的屬性。

l  Tools 菜單由這些項:

l  Save Results as XML作為一XML文件保存運行測試的結果。

l  Options讓你定製NUnit的行為。

l  現在看看右邊,你已經熟悉Run按鈕和進度條。這裡還有一個緊跟Run按鈕的Stop按鈕:點擊這個按鈕會終止執行正運行的測試。進度條下麵是一個文本視窗,在它上方,由以下4個標簽:

l  Errors and Failures 視窗顯示失敗的測試。在我們的例子里,這個視窗是空。

l  Tests Not Run 視窗顯示沒有得到執行的測試。

l  Console.Error 視窗顯示運行測試產生的錯誤消息。這些此消息是應用程式代碼使用Console.Error輸出流可以輸出的。

l  Console.Out視窗顯示運行測試列印到Console.Error輸出流的文本消息。

 

參考資料:http://confach.cnblogs.com/archive/2005/06/20/177817.aspx

 

總結

NUnit有這樣幾個優點

1.獨立於IDE,可以單獨運行。也可以以命令行方式運行。(vs應該也可以吧?)

2.版本更新快。(我不認為這是個優點,而且我也並不覺得快啊。)

3.VS的UT工具運行速度慢。(不一定)

 

NUite也有這樣幾個缺點

1.不支持Debug,要安裝TestDriven.NET才支持。

2.不支持代碼覆蓋率的查看,要和NCover一起用。而VS的代碼覆蓋很清楚。

3.不能自動生成測試代碼,也許和CodeSmith一起用好些,不過後著要收費的。  


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 轉自:http://www.haorooms.com/post/gem_not_use最近在安裝SASS的時候,用到gem命令,但是運行出行如下錯誤!C:\Users\len>gem install sassERROR: While executing gem ... (Gem::RemoteFe....
  • using (Ajax.BeginForm("GetBasicInformation", "Employee", //new AjaxOptions { UpdateTargetId = "basicInfo", //設置HTML元素的ID,從伺服器接收的內容將被插入到該元素中LoadingElem...
  • live() 與bind()作用基本一樣。 最重要區別:live()可以將事件綁定到當前和將來的元素(eg:為id=zy元素綁定點擊事件,而當你用js動態生成一個節點並插入到dom文檔結構中時,如果你是用bind()綁定的,怎麼新插入的節點將不會有該bind綁定事件。而live()則可以); ...
  • 一,c#中的值類型和引用類型 眾所周知在c#中有兩種基本類型,它們分別是值類型和引用類型;而每種類型都可以細分為如下類型: 什麼是值類型和引用類型什麼是值類型:進一步研究文檔,你會發現所有的結構都是抽象類型System.ValueType的直接派生類,而System.ValueType本身又是直接....
  • 一、前言 AgileEAS.NET SOA 中間件平臺是一款基於基於敏捷並行開發思想和Microsoft .Net構件(組件)開發技術而構建的一個快速開發應用平臺。用於幫助中小型軟體企業建立一條適合市場快速變化的開發團隊,以達到節省開發成本、縮短開發時間,快速適應市場變化的目的。 AgileEAS....
  • 1. ExcelUtility功能:  1.將數據導出到EXCEL(支持XLS,XLSX,支持多種類型模板,支持列寬自適應)  類名:ExcelUtility. Export  2.將EXCEL數據導入到數據對象中(DataTable、Dataset,支持XLS,XLSX) ...
  • 【實例說明】 本例關鍵點是練習使用^的使用,沒有什麼技術含量,大牛勿噴。呵呵。。 在介紹實例之前先來剪短瞭解一下加密的概念。 加密是指通過某種特殊的方法,更改已有信息的內容,使得未授權的用戶即使得到了加密的信息,如果沒有正確解密的方法,那麼也無法得到信息的內容。 談到加密的話題,一些讀者朋友一定非常...
  • Cron Expressions——Cron 表達式按順序依次為秒(0~59)分鐘(0~59)小時(0~23)天(月)(0~31,但是你需要考慮你月的天數)月(0~11)天(星期)(1~7 1=SUN 或 SUN,MON,TUE,WED,THU,FRI,SAT)7.年份(1970-2099)其中每個...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...