0

我的问题是如何一次在单个 TestFixture 上运行单个测试(例如用于调试)。我在每个测试类别中有几个 TestFixture,每当我单击单个测试上的 R# 图标时,它都会显示“运行”/“调试”,但是,即使选择了确切的测试和夹具,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();

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

菜单似乎说它将仅使用 UK TestFixtures 运行或调试该测试,但事实并非如此,而是运行所有固定装置。我使用带有内置 NUnit 2.6 的 VS2008 SP1、ReSharper 7.0.97.60

4

1 回答 1

2

首先,我认为您的测试设置存在根本缺陷,您试图让您的一个测试做得太多。单元测试的主要概念之一是“单一职责”,拥有冗长的测试并不是一件坏事,拥有大量测试也不是一件坏事。

我的建议是将您的测试分解为每个 TestFixture 的一个类,或者您可以为每个 TestFixture 项创建一个测试吗?这与 Resharper 没有错误地运行您的测试无关,而是您编写测试的方式与 resharper 的设计工作方式不匹配。

于 2012-08-24T14:20:45.493 回答