我使用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