【问题标题】:How can I create NUnit tests with ReSharper?如何使用 ReSharper 创建 NUnit 测试?
【发布时间】:2010-12-31 16:28:18
【问题描述】:

我正在尝试使用 C# 进行单元测试。许多人告诉我选择 NUnit,因为它比 MSTest 更好(显然,我不知道),而且它在我正在使用的 ReSharper 中也有很好的支持。

现在我这辈子从来没有写过单元测试(请耐心等待,我是一名大学生)。 ReSharper 有这个不错的 CreateUnitTests 上下文菜单选项,我已经看到其他人(偶尔回头看)使用它取得了巨大的成功。您右键单击一个方法,选择 CreateUnitTests,然后就创建了一个测试框架。您只需填写重要的部分。

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

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

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

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

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

【问题讨论】:

    标签: c# unit-testing nunit resharper


    【解决方案1】:

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

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

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

    然后您需要更改属性:

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

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

    注意:Resharper 4.5 及更高版本确实支持运行 MSTest 以及 NUIt 测试。所以你可以试试。

    【讨论】:

    • 但是再次使用 CreateUnitTests 添加新测试会添加对 Microsoft 测试 DLL 的引用并再次使用 TestClass 而不是 TestFixture 等...我是否必须删除这些时间?这是否意味着 ReSharper 只能创建 MSTest 测试模板?
    • 我对 Resharper 的选项不太熟悉 - 您确定是 Resharper 为您提供了创建单元测试的选项吗?我使用 Visual Studio 2008 Team System,当我右键单击一个方法时,我会看到“创建单元测试”选项。由于这是 VS 的一部分,它将始终使用 MSTest。我不确定是否是 Resharper 这样做的。要找出的是禁用 Resharper(工具->插件)并从头开始创建一个单元测试,如果它使用 MSTest,那么它不是 Resharper。
    【解决方案2】:

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

    完成单元测试后,ReSharper 测试运行程序会检测到它们,并且在左侧空白处,您会看到一些图标,可让您运行/调试测试。示例请参见此处的第一张图片:

    NUnit and ReSharper

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-26
      • 2013-11-05
      • 2016-10-11
      • 2014-01-03
      • 2011-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多