如何使用ReSharper创建NUnit测试?

时间:2010-01-01 22:39:05

标签: c# unit-testing nunit resharper

我正在尝试使用C#进行单元测试。各种各样的人告诉我和NUnit一起去,因为它比MSTest更好(显然,我不知道),并且它在我正在使用的ReSharper中也有很好的支持。

现在我从未在我的生活中写过单元测试(忍受我,我是大学生)。 ReSharper有这个很好的CreateUnitTests上下文菜单选项,我见过其他人(随便看看肩膀)用来取得巨大成功。右键单击一个方法,选择CreateUnitTests,然后在那里创建一个测试框架。你只需填写重要的部分。

现在,当我尝试相同的时候,ReSharper希望我创建一个新的测试项目......当我让它时,它创建(我正在假设)一个MSTest项目,显然是一个MSTest测试模板。但是我已经有一个类libarary项目引用了“nunit.framework”并且有一些NUnit测试,ReSharper非常愿意运行它们。尽管如此,它只创建了MSTest测试模板,并且只在特殊的“测试项目”项目中创建。

我做错了什么?我是做错了什么,还是创建了ReSharper无法实现的NUnit测试模板?我在网上搜索并阅读了ReSharper和NUnit的文档,我仍然无法弄清楚这是可能的还是什么。

如果有人能为我提供使用ReSharper + NUnit的指南,我将不胜感激。

编辑:我正在使用ReSharper 4.5和NUnit 2.5.3

编辑2:显然我是个白痴。 CreateUnitTests不是ReSharper的一部分,而是Visual Studio的一部分,因此只能与MSTest一起使用。

2 个答案:

答案 0 :(得分:12)

在Resharper创建的测试项目中,删除对Microsoft单元测试DLL的引用(我不记得手头的名字,但这个名字很长)。

然后添加一个新的引用--nunit.framework.dll,你应该在Add Reference对话框的第一个标签上找到它。

using NUnit.Framework添加到单元测试类文件中。

然后您需要更改属性:

[TestClass] to [TestFixture]
[TestMethod] to [Test]

因此,如果您最终获得了MSTest项目,请使用上述步骤来获取NUnit。

注意:Resharper 4.5以后确实具有运行MSTest和NUNit测试的本机支持。所以你可以试试。

答案 1 :(得分:5)

您无需运行任何向导即可使用NUnit。您可以创建一个类库,添加对NUnit的引用,并使用相应的属性标记您的测试。奇才仅适用于MSTest,即便如此,也不是必需的。

一旦进行了单元测试,ReSharper测试运行器将检测到它们,在左侧边缘,您将获得一些图标,允许您运行/调试测试。请参阅此处的第一张图片以获取示例:

NUnit and ReSharper