我使用Visual Studio(有時是resharper)來運行我的單元測試。單元測試,NUnit還是Visual Studio?
我聽說NUnit的,但我不知道這件事情很多事情......
我應該關心它?它可以提供比視覺工作室更好的東西嗎?
我應該使用NUnit嗎?爲什麼?
我使用Visual Studio(有時是resharper)來運行我的單元測試。單元測試,NUnit還是Visual Studio?
我聽說NUnit的,但我不知道這件事情很多事情......
我應該關心它?它可以提供比視覺工作室更好的東西嗎?
我應該使用NUnit嗎?爲什麼?
NUnit的具有超過MS試驗
Assert.AreEqual(expected, actual)
vs Assert.That(actual, Is.EqualTo(expected))
[TestCase]
使用的try-catch來完成! NUnit允許參數化測試。異常也可以通過MS-Test中的屬性斷言:ExpectedExceptionAttribute。 – 2009-10-12 12:11:28
我將使用NUnit與Assert.Throws <>(),因爲這遵循AAA原則,這是不通過屬性的方式。 – 2009-10-12 12:26:53
@Stefan Steinegger,MSTest預計的異常屬性,但它無法驗證消息文本 – Elisha 2009-10-16 14:27:18
NUnit是一個單元測試框架,它也支持resharper。我認爲你正在使用微軟的單元測試框架,所以NUnit的僅僅是微軟的產品替代;)
這裏是鏈接到的NUnit的主頁:http://nunit.org/index.php
NUnit的可以用來結合視覺工作室。這是一個框架,不是一個單獨的程序。所以你可以關心一下,看看它是否適合你:)。
「安裝插件後,你會發現在工具菜單下一個新的子菜單。」
有關導入它的更多信息,請參閱http://nunitit.codeplex.com/。
另外,使用SO的搜索可以找到很多。例如,This topic列出了NUnit優於MS標準測試的優點。
我不知道別人,但NUnit的提供了很好的圖形界面和控制檯運行單元測試,你也可以生成NUnit測試的執行結果的報告,該報告將給出whethere測試失敗或通過細節以及您的單元測試需要幾點時間
NUnit與標準版的VS一起使用。
不要忘記視覺工作室快遞版本。 – chobo2 2009-10-14 22:41:39
單元測試程序集項目的後構建步驟 - \ path \ to \ nUnit $(TargetFileName) – 2009-10-15 06:27:30
從我目前的角度來看(8個月的開發與大約10名開發人員平均後)我會使用MSTest的建議對,原因如下
換句話說,如果我必須在8個月前再次決定,我可能會採用NUnit。我可能沒有集成測試結果報告,但開發人員將擁有更加無縫的測試經驗。
+1,這裏的體驗相同。 – 2009-10-12 12:13:09
+1,避免MSTest,除非你沒有選擇。各種開源框架更好(xUnit,NUnit,MbUnit等)。 – Brannon 2009-12-17 09:54:55
這裏是我的經驗與MS測試
增加:我們現在有一些更多的測試,甚至不能說有多少。由於OutOfMemoryExceptions和其他不穩定性問題,無法從Visual Studio中運行它們。我們從腳本運行測試。在Visual Studio中查看測試結果很容易,但是當解決方案打開時,VS會崩潰(每次)。所以我們需要使用文本搜索來搜索失敗的測試。再也沒有集成工具的優勢了。
另一個更新:我們使用VS 2013現在。很多事情都改變了。自從我們開始以來,他們第三次重寫了MS Test測試跑步者。這導致了很多突變,但新版本都沒有做得更好。我們很高興我們沒有使用MS Test的奇特功能,因爲它們都不再受支持。這真是一個恥辱。我們仍然使用腳本來構建和運行所有的單元測試,因爲它更方便。 Visual Studio需要幾分鐘才能開始運行測試(編譯後的時間測量,直到第一次測試開始)。他們可能會通過更新修復它,這可能是我們項目的一個特定問題。但是,運行相同的測試時,Resharper要快得多。
結論:至少與Resharper結合使用時,MS Test很有用。我希望他們能夠最終發現測試運行者應該如何編寫,並且下次更新Visual Studio時不會做這種突破性更改。
我最近開始在沒有調試的情況下運行它們,使它更快*更像NUnit的使用方式,但它仍然很糟糕。看起來糟糕的性能與Visual Studio在調試時做了些時髦的事情有關。 (也就是說,使用「ctrl + F5」而不是「F5」 - 你仍然可以很好的與VS) – Arafangion 2010-12-13 08:06:35
3,800「整合」!幸運的是,想象一下29,948,NUNIT在這一點上變得非常痛苦.. – 2014-05-04 05:47:46
好的回答,節省了我的時間 – FindOutIslamNow 2017-09-30 03:08:15
最大的優勢MS-Test通過NUnit是MS-Test可以使用反射生成模擬對象。 我發現它非常有用
http://code.google.com/p/moq/,http://www.nmock.org/,http ://stackoverflow.com/questions/37359/what-c-mocking-framework-to-use – 2010-02-17 09:41:03
如果您使用Visual Studio您必須使用NUnit進行單元測試,並且如果您正在運行java(Netbeans),則必須使用JUnit進行單元測試。
下面是一個簡單的計算器單元測試
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SimpleCalculator;
using NUnit.Framework;
namespace CalculatorTest
{
[TestFixture]
public class Class1
{
public Calculator _calculator;
[TestFixtureSetUp]
public void Initialize()
{
_calculator = new Calculator();
}
[Test]
public void DivideTest()
{
int a = 10;
int b = 2;
int expectedValue = a/b;
int actualvalue = _calculator.Divide(a, b);
Assert.AreEqual(expectedValue, actualvalue,"Failure");
}
}
}
當然你不*必須使用NUnit,它只是一個框架,沒有人強迫你使用它。如果你覺得無聊,你甚至可以自己寫。 – HimBromBeere 2016-05-20 10:24:38
也考慮的xUnit一個例子,但是不管你做什麼有一個看起來TestDriven.net – 2009-10-12 12:25:00
@Ian +1 TDD。 – magnus 2010-01-11 21:43:01
另請參閱http://stackoverflow.com/questions/707444/nunit-vs-team-system-unit-test – 2010-02-17 09:44:22