ReSharper无法运行新的单元测试。

27

当我在我的测试项目中创建新的NUnit单元测试时,ReSharper Unit Test Runner检测到它们,但它们保持灰色并且不被运行。

无论我是尝试单独运行测试还是全部一起运行,都会出现这种情况。

如果我关闭并重新打开解决方案,则可以正确检测并运行新测试。

只有在使用Visual Studio构建解决方案之后运行测试时才会出现此行为。如果我让ReSharper触发构建,则测试会被正确检测。

我正在使用:

  • Visual Studio 2010
  • ReSharper
  • NUnit 2.5.7

1
我现在正在使用ReSharper 6.1,问题已经解决了。 - aboy021
10个回答

25

尝试清理解决方案并从项目文件夹中删除与RS相关的文件和文件夹。这对我有用。不过我使用的是VS2008。


一出现问题,就尝试清理解决方案。清理ReSharper文件无法解决该问题。 - aboy021
4
@aboy,我是指删除resharper文件。如果你的解决方案叫做“X”,那么在你的解决方案文件夹中会有一个“_Resharper.X”的文件夹,它必须被删除,还有以“resharper.user”结尾的文件也要删除。你也可以尝试清除Resharper的缓存。在 VS 中选择菜单Resharper/Options,在常规设置下有一个“Clear Caches”按钮。 - Morten
在解决方案根目录中删除“_Resharper*”文件夹对我也起作用了。 - Nick Josevski
1
这个问题对我来说已经消失了,但我接受了这个答案,因为它是很好的实用建议,并且根据赞数看来它似乎帮助了其他人。 - aboy021
说句实话,仅仅在我的VS 2012解决方案上进行一次清理就解决了问题,不需要删除RS文件。 - chris.house.00

25

这也帮助我将单元测试类设置为public :D


1
哇...用愚蠢的棍子打我吧:class UnitTest1 vs public class UnitTest1... 唉 - WernerCD

5

单元测试方法必须是公共的.

以下测试会无法被识别:

[Test]
void RunTest(){
    Assert.True;
}

虽然这个测试被认可:

[Test]
public void RunTest(){
    Assert.True;
}

我在这里发布了这个答案,因为这是我的解决方案,我只是忘记了“public”。所以也许它能帮助未来的某个人。 - Sjoerd222888

1
在使用SpecFlow时遇到了这个问题。新建项目> NuGet SpecFlow,然后我添加了Spec(NUnit)测试。然后我收到了错误提示。仅重启我的唯一正在运行的Visual Studio 2012实例即可解决该问题。

0

我曾经遇到过这个问题。在我的特定情况下,是因为将代码构建到缺乏完全信任的网络驱动器上。

虽然VS可以从那里构建和运行,但NUnit并不开心。令人无助的是,它没有显示任何失败原因(只有测试名称旁边的那些未解释的灰点)。


0

我遇到了同样的问题。我正在使用带有ReSharper 8.2.3的VS2013。清理和重建解决方案并没有解决错误。

我的测试方法是async,但返回了void。返回一个Task修复了错误。


0

我通过安装NuGet NUNitTestAdapter解决了类似的问题。

我正在使用NUnit v.2.6.4,而NUnitTestAdapter v2.1.1解决了这个问题。


0
今天在使用VS 12、NUnit和RS 8.2时遇到了这个问题。在单元测试会话控制台上,有一个构建设置选项。确保将其设置为“自动”而不是“自动(整个解决方案)”。

0

同时确保你的方法上实际上有[Test]注解或[TestCase(...)]注解。如果没有这些注解,那么你肯定看不到测试列表中的测试。


0

删除_ReSharper文件夹和ReSharper CACHE文件对我来说没有解决问题。

今天我遇到了这个问题,即ReSharper无法运行单元测试,我通过运行Clean Solution然后重新构建解决方案来解决了这个问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接