2010-03-11 70 views
11

對於Visual Studio 2008所具有的框架,我是否因爲沒有使用像NUnit這樣的外部工具而錯過了很棒的東西?從我可以告訴它看來,使用NUnit看起來更像是一個手動創建測試類和方法而不是IDE右鍵單擊的麻煩。話雖如此,我是否缺少NUnit提供的VS不包含的功能?爲我的QA人員訪問一個簡單的GUI是好的,但是使用nAnt和單元測試傳遞的構建依賴關係,我是否缺少很酷的功能?NUnit和微軟的單元測試框架(VS 2008)有真正的區別嗎?

+0

對這個問題的答案可能會有所幫助:http://stackoverflow.com/questions/92869/nunit-vs-visual-studio-2008s-test-projects-for-unit-testing –

回答

12

Roy Osherove剛剛寫了一個最近的blog post,總結了NUnit和MSTest之間的區別。我認爲它可以回答你的問題。

他得出的結論是NUnit在單元測試中獲勝,但MsTest具有更好的基於集成的測試和Team System團隊測試的能力。

+0

@Paddyslacker:無處在Roy的博客文章中,他是否對「NUnit遠遠優於真正的單元測試」這一事實作出了陳述。 –

+0

修正了匹配博客文章標題的結論。謝謝你讓我誠實,斯科特! – Paddyslacker

+0

他們真的幾乎相同恕我直言。 –

1

我在工作中使用MSTest,因爲我必須,而且說實話,我覺得它很慢並且很刺激。如果我有我的選擇,它將是xunit.net(基本上就像nunit,只是略少一點)+用於IDE集成的resharper測試運行器。

4

我已經使用NUnit和MSTest。是的,有差異。 NUnit是一個更老的,更成熟的單元測試框架,旨在完成一件事情 - 單元測試。 MSTest更新,所以它的API沒有相同的成熟度級別。例如,NUnit提供比MSTest更多的Assert方法。 (有關更多信息,請參見http://geekswithblogs.net/sdorman/archive/2009/01/31/migrating-from-nunit-to-mstest.aspx。要添加一些缺少的Assert方法,請參閱http://geekswithblogs.net/sdorman/archive/2009/01/31/adding-custom-assertions-to-mstest.aspx)。

我還沒有真正發現性能是任何一個框架的問題。

一些更大的區別是:

  • MSTest的需要構建服務器上的Visual Studio實例才能運行。它不包含像NUnit這樣的獨立測試運行器。
  • MSTest在Visual Studio中直接提供測試結果代碼覆蓋率結果。 NUnit在其自己的UI中提供測試結果,並需要額外的工具來執行代碼覆蓋率分析。