VisualStudio 2012中的單元測試


昨天簡單的看了下Visual Studio2012的單元測試功能,其變化還是非常大的,其主要特點如下:

支持第三方單元測試框架集成

Visual Studio 2012現在可以在IDE中支持對第三方單元測試框架集成,只需要在 Visual Studio Gallery 下載相應的擴展即可。


集成后統一后的測試界面更加整潔,並且第三方測試框架也可以使用VisualStudio中的提供的功能(代碼覆蓋率,測試策略等)了。目前支持的一些第三方測試框架為:

  • NUnit
  • xUnit.net
  • MbUnit
  • QUnit
  • Jasmine 

測試策略

支持一些常用的測試策略:

  1. 生成后運行測試
  2. 只運行為通過的用例
  3. 優先測試關鍵用例

 

 

 

 

對失敗的測試用例調試

可以查看測試用例的代碼覆蓋率,這個以前其實也有,但現在和第三方測試框架集成后就更加方便了。


查看代碼覆蓋率


支持對C++代碼測試

現在MS-Test直接支持對C++本地代碼測試了,關於其測試方法請參看MSDN文章:Unit testing native code with Test Explorer,其完整示例可以參看下這個項目: Hilo project


支持異步函數的測試

支持對.net 4.5中的async關鍵字標識的異步函數進行測試,測試用例也可以使用await關鍵字。

    [TestMethod]
    public async
Task TestMethod1()
    {
        var result = await AsyncOperation();
        Assert.IsNotNull(result);
    }

試了一下,xunit和微軟自家的ms-test都支持,其它的測試框架沒試過。

不過需要注意的是:其返回值必須是Task而不能是平時用的void。如果寫成void,則會出錯:ms-test不把它識別為測試用例,xunit測試結果不正確。

集成打樁框架Fakes

Visual Studio 2012中提供了一個Fakes框架,方便我們在測試用例中進行打樁操作。關於其詳細信息可以參看MSDN文章:Isolating Code under Test with Microsoft Fakes


PS:

  1. 關於單元測試工具,由於我了解的不多,如下有一份nunit、xunit及ms-test的功能和使用方式比較,感覺大都是大同小異,如果有誰有其特點描述相關文章,歡迎推薦一下。
  2. 關於ms-test的使用方式,可以參看MSDN文章:Writing Unit Tests for the .NET Framework with the Microsoft Unit Test Framework for Managed Code。不過貌似都是英文的,習慣中文的朋友可以參看下這篇文章:使用 Visual Studio Team Test 進行單元測試,這篇文章是介紹vs2005的,有的功能已經不一樣了(大都是測試界面以及功能上的一點微調),不同寫測試用例的方法還是基本相同的,當入門教程還是不錯的。
  3. 關於測試用例的編寫,微軟提供了一個自動生成測試用例的工具Pex,感興趣的朋友可以去它的網址pexforfun在線體驗一下。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM