0

私の質問は、一度に 1 つの TestFixture で 1 つのテストを実行する方法です (たとえば、デバッグ用)。各テスト カテゴリにいくつかの TestFixtures があり、単一のテストで 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();

クリックすると、すべてのフィクスチャが実行を開始します (つまり、すべての siteEditions)。

メニューは、UK TestFixtures でそのテストのみを実行またはデバッグすると言っているようですが、そうではなく、代わりにすべてのフィクスチャを実行します。VS2008 SP1、NUnit 2.6 が組み込まれた ReSharper 7.0.97.60 を使用しています。

4

1 に答える 1

2

まず、テストのセットアップに根本的な欠陥があると思います.1つのテストをやりすぎようとしています. 単体テストの主要な概念の 1 つは "単一の責任" です。詳細なテストを行うことは悪いことではなく、多くのテストを行うことも悪いことではありません。

私の提案は、テストを各 TestFixture のクラスに分割することですか、または各 TestFixture アイテムのテストを作成できますか? Resharper がテストを間違って実行していないということではありません。テストの記述方法が、resharper が動作するように設計されている方法と一致していないということです。

于 2012-08-24T14:20:45.493 に答える