Resharper 将我的 NUnit 测试标记为未使用

Posted

技术标签:

【中文标题】Resharper 将我的 NUnit 测试标记为未使用【英文标题】:Resharper marks my NUnit tests as unused 【发布时间】:2014-05-19 10:51:55 【问题描述】:

我正在使用 Visual Studio 2008 和 NUnit 2.6.3 以及 Resharper 8.2

Resharper 可以识别我的单元测试(因此我可以使用 Resharper 运行它们),但它们都被标记为未使用(类以及单个测试方法)。我知道如何在每个测试类中通过注释来抑制警告,但我正在寻找没有此类 cmets 的解决方案,因为它们也会影响真正未使用的测试代码(因此应该警告我)。

据我了解,这对于 NUnit 测试来说应该是开箱即用的,但我无法让它发挥作用。我必须更改一些设置吗?我用谷歌搜索了很长时间,但没有找到任何东西。

【问题讨论】:

你是说 Resharper 将代码标记为未使用? 是的,我刚刚在问题中澄清了。 你决定上课internal了吗?因为对于 internal 类,ReSharper 可能会检查您的程序集并确定该类从未使用过,但对于 public 类,ReSharper 可能会说,“好的,这是供我从这里看不到的代码使用的。”如果您明确决定保留测试课程internal,我可以理解,但是您做到了吗? 不,课程是公开的。从我不理解的 Resharper 来看,它应该足够聪明,可以忽略由于 [TestFixture] 注释而没有引用该类的事实,无论其可见性如何。 无法使用 NUnit 2.6.3 和 Resharper 8.2.1 进行复制,一旦添加了 [Test] 属性,Resharper 不会将代码显示为未使用.. 虽然在 VS2013 中。 - postimg.org/image/681rgwd0d 【参考方案1】:

您需要安装 ReSharper ExternalAnnotations 来解决问题。 VS2008不支持ReSharper Extension Manager,请手动安装:

    下载nuget package; 使用任何存档软件(如 WinZip)打开它; 提取..\ReSharper\vAny\annotations\C:\Program Files (x86)\JetBrains\ReSharper\v8.2\Bin\ExternalAnnotations的所有文件夹; 然后重新启动 Visual Studio;

【讨论】:

以上是关于Resharper 将我的 NUnit 测试标记为未使用的主要内容,如果未能解决你的问题,请参考以下文章

单元测试、NUnit 还是 Visual Studio? [关闭]

为啥 Resharper 将此标记为“访问修改后的闭包”?

单元测试之NUnit二

visual studio 使用Resharper进行测试

你如何用 NUnit 测试私有方法?

NUnit属性-百度Nunit-Gui