如何使用ReSharper7在NUnit中运行单个测试

时间:2012-08-24 14:08:08

标签: c# visual-studio-2008 nunit resharper

我的问题是如何一次在单个TestFixture上运行单个测试(例如用于调试)。 我在每个测试类别中都有几个TestFixtures,每当我在单个测试中单击R#图标时,它会显示“Run”/“Debug”,但是,即使选择了精确的测试和夹具,R#和NUnit也会运行所有灯具一个接一个。

[Category("LoginTestSuite")]
[TestFixture(SiteEditionsEnum.AsiaPacific)]
[TestFixture(SiteEditionsEnum.Australia)]
[TestFixture(SiteEditionsEnum.Canada)]
[TestFixture(SiteEditionsEnum.CanadaFrench)]
[TestFixture(SiteEditionsEnum.France)]
[TestFixture(SiteEditionsEnum.Germany)]
[TestFixture(SiteEditionsEnum.HongKong)]
[TestFixture(SiteEditionsEnum.Japan)]
[TestFixture(SiteEditionsEnum.Spain)]
[TestFixture(SiteEditionsEnum.UnitedKingdom)]
[TestFixture(SiteEditionsEnum.UnitedStates)]

public class LoginTestSuite : FrontEndTestSuitesCommon
{
[...]


    [Test]
    public void RunLoginFunctionalTest()
    {
        Logger.Log(MessageType.None, "This test case is using the email address: " + ConfigurationManager.AppSettings["DefaultLoginEmail"], LogLevel.Info);
        Actions.Login.GetToLoginPage();
        Actions.Login.SetLoginCredentials();

点击后所有灯具开始运行(即所有siteEditions)

菜单似乎表示它将仅使用UK TestFixtures运行或调试该测试,但它没有,它会运行所有灯具。 我使用VS2008 SP1,ReSharper 7.0.97.60和内置的NUnit 2.6

1 个答案:

答案 0 :(得分:2)

首先我认为你的测试设置有一个根本性的缺陷,你试图让你的测试做得太多。单元测试的一个主要概念是“单一责任”,详细测试并不是一件坏事,并且进行大量测试并不是一件坏事。

我的建议是将测试分解为每个TestFixture的类,还是可以为每个TestFixture项创建一个测试?它不是关于Resharper没有运行你的测试错误,而是你编写测试的方式与resharper的工作方式不匹配。