NUnit调试单个测试

Mat*_*ieu 8 c# debugging resharper nunit

我使用ReSharper的NUnit插件.我找不到任何调试单个测试的方法.即使我从一种测试方法专门启动调试,BUG按钮也会始终启动所有测试.

我试图通过一个特定的测试来达到断点,我不想用其他测试来达到它.

你知道这样做的方法吗?谷歌没有帮我这个...

我的测试代码示例

[Test]
public void IsValidDoer_DoerValid()
{
    var mockRepositoryDoer = new Mock<IDoerRepository>();
    mockRepositoryDoer.Setup(c => c.ActiveDoers).Returns(activeDoers.AsQueryable);

    var doerValidation = new DoerValidation(mockRepositoryDoer.Object);

    Assert.IsTrue(dModel.IncludedDoers.Any());
}

[Test]
public void IsValidDoer_DoerInvalidNoQuota()
{
    var mockRepositoryDoer = new Mock<IDoerRepository>();
    var activeDoers = listDoers.ToList();
    activeDoers.First().QuotaActivity.Clear();
    mockRepositoryDoer.Setup(c => c.ActiveDoers).Returns(activeDoers.AsQueryable);

    var doerValidation = new DoerValidation(mockRepositoryDoer.Object);

    Assert.IsFalse(dModel.IncludedDoers.Any());
}
Run Code Online (Sandbox Code Playgroud)

kry*_*our 4

是的,代码旁边有一个绿色和黄色标记,只需单击它并单击运行,它将运行该单个测试。一旦出现选项,您只需左键单击它,并且根据您从 Jetbrains 安装的内容,您也可以从此处启动代码覆盖率。

您还可以选择将其附加到其他测试的现有会话中,或者在会话中单独创建它。

重新磨刀测试

澄清:

有人对此投了反对票,所以我回去看了一下并针对 MSTEST 和 NUnit 进行了测试。确实,如果您只想调试一项,则不希望执行 15 项测试。该测试是在使用 Resharper 10 的 Visual Studio 2015 和使用 Resharper 8 的 Visual Studio 2013 中进行的。如果单击单个测试文件中的标记,它实际上只会运行代码一次。

如果您运行多个测试并在 Resharper 的运行程序中获得包含三个测试的测试会话,右键单击时,它将显示“调试测试”,但是如果您只选择一个,它只会运行一个测试,因此只会点击代码一次。