如何使用ReSharper创建NUnit测试?

我正试图用C#进行unit testing。 各种各样的人告诉我要使用NUnit,因为它比MSTest更好(显然,我不知道),并且它在我使用的ReSharper中也有很好的支持。

现在我从来没有在我的生活中写过unit testing(忍受我,我是大学生)。 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

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

在Resharper创建的测试项目中,删除对Microsoftunit testingDLL的引用(我不记得手头的名称,但这是一个很长的名字)。

然后添加一个新的引用–nunit.framework.dll,您应该在Add Reference对话框的第一个选项卡上找到它。

using NUnit.Framework添加到unit testing类文件。

然后,您需要更改属性:

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

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

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

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

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

NUnit和ReSharper