如何使用ReSharper创建NUnit测试?

Luc*_*cas 8 c# resharper nunit unit-testing

我正试图用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一起使用.

Jas*_*ans 12

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

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

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

然后,您需要更改属性:

[TestClass] to [TestFixture]
[TestMethod] to [Test]
Run Code Online (Sandbox Code Playgroud)

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

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

  • 我不熟悉Resharper的选项 - 你确定它是Resharper给你创建单元测试的选项吗?我使用Visual Studio 2008 Team System,当我右键单击一个方法时,我得到"创建单元测试"选项.由于这是VS的一部分,因此它将始终使用MSTest.我不确定它是否是Resharper这样做的.要找出的是禁用Resharper(Tools-> Addins)并从头开始创建单元测试,如果它正在使用MSTest那么它不是Resharper. (3认同)

Had*_*iri 5

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

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

NUnit和ReSharper