【问题标题】:Why does Resharper not pick up my NUnit tests?为什么 Resharper 不接受我的 NUnit 测试?
【发布时间】:2011-12-28 08:22:37
【问题描述】:

我最近从 MSTest 转换为 NUnit。我是这样做的

  • 将所有出现的[TestMethod] 替换为[Test][TestClass] 替换为[Test] 等。
  • 我还删除了 Microsoft.VisualStudio... 引用并添加了 NUnit.framework nuget 包。

自从我这样做后,Resharper 就没有在方法旁边显示小测试图标。如果我使用 Ctrl + U, R 运行测试,它会显示正确的计数,但实际上并没有运行任何测试。

有人知道吗?

编辑:我的程序集一定有问题,因为我创建了一个名为 Test.Web 的新程序集,并创建了一个只有 [TestFixture] 的简单类,Resharper 立即识别了它。

【问题讨论】:

  • 没有一个解决方案有效。你是怎么解决的?
  • 在下面查看我的答案,这就是我为解决它所做的。基本上创建了一个新库并复制了代码。
  • 确保类是public

标签: nunit resharper


【解决方案1】:

我遇到了同样的问题,我是这样解决的:

  1. 转到 Resharper 选项 -> 工具 -> 单元测试 -> 单元测试提供程序
  2. 取消选择除 Nunit 以外的任何内容,然后按 OK。
  3. 它现在应该可以工作了,您甚至可以重新选择您禁用的提供程序,它应该仍然可以工作。

【讨论】:

  • +1 不知道为什么,刚安装dotCover后,表示NUnit已激活的复选框没有被选中。
  • 在我的情况下,xUnit 检测是一个阻碍。
  • 必须与旧版本的 Resharper 相关。现在没有可以取消选择的复选框。
【解决方案2】:

删除 .ReSharper.user 源目录中的文件(与解决方案文件在同一目录中)为我解决了同样的问题。

【讨论】:

  • 在 ReSharper 8.2.3 中称为 .DotSettings.User
【解决方案3】:

程序集有问题。我不确定是什么。但是我创建了一个新的空白类库,安装了 NUnit、Should 和 Moq。然后将我的类从以前的程序集中复制到新程序集中,,一切正常。

【讨论】:

  • 测试方法是否也被公共访问修饰符和 [Test] 属性标记? (对不起,愚蠢的问题)
  • 是的。正如我所说,它在 NUnit 中独立运行。当我将文件复制到另一个存储库时也有效。这不是 NUnit 问题。
【解决方案4】:

当它由于某种原因停止工作时,我遇到了问题。

解决方案是去Resharper->Options->Tools->“单元测试”在像NUnit这样的每个子项中,你将为您要支持的测试设置复选框。会有类似“启用 NUnit 3x 支持”

像这样:

【讨论】:

    【解决方案5】:

    对我来说,右键单击测试夹具类名称并单击 Visual Studio 的 (不是 Resharper 的)“运行测试”菜单项使 R# 图标再次出现。



    附:这是在 Visual Studio 2017 中

    【讨论】:

      【解决方案6】:

      当测试类太大以至于 ReSharper 暂停代码分析时,可能会发生这种情况。对于这些文件,您可以右键单击代码编辑器垂直滚动条上方的“暂停”图标,然后选择“恢复分析”。

      这会将ForceIncluded 条目添加到解决方案的.DotSettings.user 文件中,因此您无需再次执行此操作:

      <s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=.../@EntryIndexedValue">ForceIncluded</s:String>
      

      【讨论】:

        【解决方案7】:

        我按照this StackOverflow question 上的建议完成了这项工作。具体来说:

        • 添加对Microsoft.NET.Test.Sdk 的 NuGet 引用
        • 更新 ReSharper
        • 重启 Visual Studio

        【讨论】:

          【解决方案8】:

          我遇到了类似的问题,并确定 MSpec 插件存在干扰。通过禁用 MSpec 测试运行程序解决:Resharper->Options->Plugins。

          【讨论】:

            【解决方案9】:

            如果您有多个测试项目的 nunit、NUnit3TestAdapter 和 Microsoft.NET.Test.Sdk 版本不匹配,则可能会出现此问题。

            当我向现有解决方案添加新的测试项目时,Visual Studio 默认安装了这些库的最新版本。所有测试都在内置的测试资源管理器中运行,但 ReSharper 看不到新的测试项目。

            要修复:右键单击解决方案资源管理器中的解决方案,选择“管理解决方案的 NuGet 包”,然后转到“合并”选项卡。为这些库中的每一个选择您要使用的版本并将其安装在所有测试项目中。

            【讨论】:

              【解决方案10】:

              这发生在一个包含大量项目的解决方案中。 (我检查了一下,它没有暂停分析。)在我所有的其他解决方案中运行测试都很好。我尝试将 NUnit 3 测试适配器包添加到我的所有项目中,但由于我使用的是 Resharper,我很确定这不会解决任何问题——它没有。最后我更新到最新版本的 Resharper。安装程序说它失败了,但在那之后,Resharper 可以再次看到我的单元测试。很难说这是否可以称为“答案”,但它似乎是让我重新振作起来的原因。

              【讨论】:

                【解决方案11】:

                更新到最新版本的 resharper 并在“.testsettings”文件中添加应用程序根目录的位置

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2014-08-14
                  • 1970-01-01
                  • 2016-10-11
                  • 2014-01-03
                  • 2011-09-16
                  • 1970-01-01
                  相关资源
                  最近更新 更多