Visual Studio Unit Test VS NUnit

來源:互聯網
上載者:User

公司裡用的是NUnit,但是用起來並不覺得好用,因為發現VS的測試代碼可以自動產生的。於是大致比較了一下Visual Studio裡內建的Unit Test和NUnit的區別。

在stackoverflow上有人討論過這個問題。下面的條目都是摘自各個網頁。做個匯總,方便大家參考。 

 

最表面上來看,用的類庫不同,這個問題很好通過一個宏來解決。

 

#if !NUNIT

     using Microsoft.VisualStudio.TestTools.UnitTesting;

 #else

     using NUnit.Framework;

     using TestClass = NUnit.Framework.TestFixtureAttribute;

     using TestMethod = NUnit.Framework.TestAttribute;

     using TestInitialize = NUnit.Framework.SetUpAttribute;

     using TestCleanup = NUnit.Framework.TearDownAttribute;

     using TestContext = System.String;

     using DeploymentItem = NUnit.Framework.DescriptionAttribute;

 #endif

 

 

NUnit有這樣幾個優點

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

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

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

 

NUite也有這樣幾個缺點

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

2.       不支援程式碼涵蓋範圍的查看,要和NCover一起用。而VS的代碼覆蓋很清楚。

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

 

補充一點:NCover產生的XML太大了,動不動IE就Crash了,(用NCoverExplorer更好,不過公司沒有……)。今天找了半天,都沒有找到辦法讓NCover只產生特定Namespace的資料的命令列參數。最後改了xsl,不顯示Method級的XML,好了些。

 

 

VS UT最大的缺點——價格!只有VS Pro才支援UT,只有VSTS才支援代碼覆蓋。

 

還有人認為VSUT比較難以與CC.NET整合。雖然沒有去試著在CC中直接使用VSUT,但是感覺應該是可以的。

 

再來看一下VS的價格。

 

 

With Premium MSDN

With Professional MSDN

Without MSDN

VS 2008 Team System

$10939

 

 

VS 2008 Professional

$2499

$1199

$799

VS 2008 Standard

 

 

$299

 

最新報價請參考:http://msdn.microsoft.com/en-us/aa700832.aspx

  

另外,ReSharper(30天試用)、xUnit(開源)、MbUnit也都是UT的不錯選擇。

 

參考:http://stackoverflow.com/questions/92869/nunit-vs-visual-studio-2008s-test-projects-for-unit-testing

http://stackoverflow.com/questions/709/net-testing-framework-advice

http://stackoverflow.com/questions/1760/net-unit-testing-packages

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.