web-dev-qa-db-ja.com

アセンブリ内のすべてのテストの前後にメソッドを実行することは可能ですか?

Selenium uiオートメーション用のnunitプロジェクトを構築したいと思います。すべてのテスト(すべて)を実行する前にサイトにサインインし、すべてのテスト(すべて)を実行した後にブラウザーを閉じたい。

SetUpはフィクスチャに関連しているので使用できません。すべての前後に使用したいと考えています。

誰がそれを実行するか知っていますか?


SetUp属性とTearDown属性に精通しています。もう一度説明させてください。

すべてのフィクスチャからのすべてのテストが始まる前に実行するロジック(AKA-アセンブリ全体の最初のテスト)と、すべてのフィクスチャからのすべてのテストが終了した後に実行するロジック(AKA-アセンブリ全体の最後のテスト)が必要です。

22
boger

すべてのテストフィクスチャが同じ名前空間内にある場合は、[SetUpFixture]属性を使用して、クラスをグローバルセットアップおよびティアダウンとしてマークできます。次に、そこにすべてのログイン/ログアウト機能を配置できます。

NUNIT 2.x

namespace MyNamespace.Tests
{
    using System;
    using NUnit.Framework;

    [SetUpFixture]
    public class TestsSetupClass
    {
        [SetUp]
        GlobalSetup()
        {
            // Do login here.
        }

        [TearDown]
        GlobalTeardown()
        {
            // Do logout here
        }
    }
}

参照: http://www.nunit.org/index.php?p=setupFixture&r=2.4

NUNIT 3.x

namespace MyNamespace.Tests
{
    using System;
    using NUnit.Framework;

    [SetUpFixture]
    public class TestsSetupClass
    {
        [OneTimeSetUp]
        GlobalSetup()
        {
            // Do login here.
        }

        [OneTimeTearDown]
        GlobalTeardown()
        {
            // Do logout here
        }
    }
}

参照: https://github.com/nunit/docs/wiki/SetUpFixture-Attribute

27
matthewrdev

承知しました。それが[TestSetUp]および[TearDown]属性の目的です。最初のテストの前と最後のテストの後で実行される[TestFixtureSetUp]および[TestFixtureTearDown]と混同しないでください。

8
Ross Patterson

各テストケースを実行する前に[SetUp]セクションが実行されます

各テストケースの実行が完了した後[TearDown]セクションが実行されます。

変数を初期化したい場合は、[SetUp]コンストラクタのようなセクション

オブジェクトを破棄したい場合は、[TearDown] セクション

    [SetUp]
    protected void SetUp()
    {
             //initialize objects
    }

    [TearDown]
    public void TearDown()
    {
       //dispose objects
    }
3
Sumeshk

nunitで最も近いのは SetupFixture 属性です。これにより、クラスにタグを付けて、名前空間内のすべてのテストフィクスチャのセットアップ/ティアダウンを実行できます。

SetUpFixtureのSetUpメソッドは、その名前空間に含まれるフィクスチャの前に一度実行されます。 TearDownメソッドは、すべてのフィクスチャの実行が完了した後に1回実行されます。

1