7

我将 Resharper 4.5 与 Visual Studio 2008 和 MBUnit 测试一起使用,使用 ReSharpher 运行测试似乎有些奇怪。

在侧面,每个测试方法的类旁边都有图标,带有“运行”和“调试”选项。当我选择运行时,它只会向我显示单个测试的结果。但是我注意到测试需要很长时间才能运行。

当我运行 Sql Server 分析器并开始单步执行代码时,我意识到它不仅运行选定的测试,而且还运行类中的每一个测试。有什么理由让它看起来像只运行一个单元测试而实际运行它们?

当我只关心一个结果时,等待所有集成测试运行变得很痛苦,有没有办法改变这种情况?

4

5 回答 5

5

我今天刚遇到这个,我想我可能已经意识到导致这个错误的原因,我的方法命名类似

    [TestMethod]
    public void TestSomething()

    [TestMethod]
    public void TestSomethingPart2()

我看到跑步TestSomething()会同时运行,但跑步TestSomethingPart2()不会。我得出的结论是,如果您命名方法,则方法名称可能会发生完全匹配,它将运行测试。将我的第二个测试重命名为TestPart2Something这个问题后就消失了。

于 2010-01-04T17:50:08.023 回答
5

我可以确认这是 ReSharper 5.1 的问题。

从下面的示例代码中重现运行测试 A(所有测试都将执行);运行测试 AB(除 A 之外的所有都将执行);ETC:

[TestMethod]
public void A()
{
    Console.WriteLine("A");
}

[TestMethod]
public void AB()
{
    Console.WriteLine("AB");
}

[TestMethod]
public void ABC()
{
    Console.WriteLine("ABC");
}

[TestMethod]
public void ABCD()
{
    Console.WriteLine("ABCD");
}

[TestMethod]
public void ABCDE()
{
    Console.WriteLine("ABCDE");
}

我花了很长时间才解决这个问题。我将远程调试器连接到开发服务器,它的中断频率比我预期的要多...

正如其他人所说,它似乎在做 StartsWith 而不是 Contains 。解决方法是没有以另一个测试方法名称开头的测试方法名称。

于 2010-10-07T23:18:51.343 回答
3

我希望这会出现在 Chris 的帖子下。

我有类似的情况证实了他注意到的行为。

[TestMethod()]
public void ArchiveAccountTest()

[TestMethod()]
public void ArchiveAccountTestRestore()

因此,运行第一种方法将同时执行,而运行第二种方法则不会。将我的第二种方法重命名为 TestRestore,问题就消失了。

注意:我使用的是 Resharper 5.1,所以它仍然是一个问题。

于 2010-07-27T20:24:34.370 回答
0

当您在编辑器中单击鼠标右键时,会出现上下文菜单,您可以从中运行和调试测试。在测试方法内右键单击以运行或调试该单个测试。在任何测试方法之外右键单击以运行或调试当前文件中包含的整个测试类。

于 2009-07-10T16:22:50.050 回答
0

当前版本的 Gallio 包括一个内置MbUnit(和 NUnit)支持的单元测试运行器。

从 Resharper 菜单中,您可以选择在解决方案中运行单个单元测试或所有测试。很酷的是,键盘快捷键是:

  • Alt + R, U, R - 从当前上下文运行测试(如果您处于某个[Test]级别,它会运行一个测试,如果您处于某个[TestFixture]级别,它会在夹具中运行所有测试!)
  • Alt + R, U, N - 运行解决方案中的所有单元测试

我强烈建议您卸载当前的 Gallio,然后检查 C:\Program Files\Jetbrains\Resharper\plugins\bin 并清除那里的文件。然后重新安装 Gallio。

完成此操作后,您应该启动 VS2008 并转到 Resharper | 插件菜单检查 Gallio 插件是否处于活动状态。这将为您提供对 MbUnit 的支持。

于 2009-12-05T12:00:08.690 回答