2009-06-06 71 views
1

我即將開始一個新的C#應用​​程序,這可能需要一段時間(閱讀:> 1年)。我想保持它的跨平臺,也就是說,它應該使用Mono,但我的主要開發平臺是Visual Studio。新的.NET項目的推薦單元測試框架

現在我正在研究測試框架,但我想知道哪一個你將在便攜和可靠的未來。目前,nUnit似乎是標準,但是鑑於xUnit.net,我想知道這是否會更好,因爲它似乎更積極地開發。或者我應該堅持只使用MSTest?畢竟,我可以期待MSTest可以支持好幾年。對於Java而言,它將非常清楚JUnit,因爲它在任何地方都受到支持,但.NET環境似乎更加分散。

所以主要問題不是功能等(MSTest在這方面不是太好),而是長期的可靠性。有鑑於此,您可以推薦哪種單元測試框架?

回答

3

MSTest當然不是可移植的,它與Visual Studio綁定。如果您的目標是Mono,那麼理想情況下您的測試也應該在Mono上運行。 Mono itself uses nUnit,或者更確切地說nUnitLite - 這可能會影響你的決定。添加TestDriven.NetResharper你的工具集,可以讓你在VS輕鬆運行NUnit的 - 但它們不是免費的,如果這是一個問題,你可以嘗試NUnitit

1

我猜你正在尋找主觀的答案。我喜歡NUnit。 「界面」上的穩定性對我來說沒有產生任何問題。它適用於任何IDE,並與許多構建工具集成。另外如果你瞭解JUnit,你會發現NUnit非常自然。

1

NUnit確實在任何地方都支持。我們的(200+開發人員)商店剛剛從MSTest遷移到NUnit,到目前爲止,我們還沒有遇到缺少工具支持的問題:事實上,恰恰相反,似乎圍繞NUnit的支持基礎架構非常廣泛。這適用於Hudson和Cruise Control等持續集成系統。

我們發現NUnit的開發仍然非常活躍。 2.5版包括像

Assert.Throws
功能已從的xUnit拍攝,但保留向後兼容使用
[ExpectedException]

MSTest的缺乏許多功能測試兼容性。有些(例如

[TestCase]
)在開源框架中非常有用:它們不僅僅是「絨毛」,而且減少了您需要編寫和調試的測試代碼的數量。

MSTest的主要優點是與Team Foundation Server緊密集成。這使您可以將單元測試與錯誤報告和內部編號鏈接起來:如果您受到足夠的訓練以使用它,則可以使用該功能。