2013-08-28 2 views
10

Ich würde gerne ein Nunit-Projekt für Selen-ui-Automatisierung bauen. Ich möchte mich auf der Website anmelden, bevor alle Tests (alle) ausgeführt werden, und den Browser schließen, nachdem alle Tests (alle) ausgeführt wurden.Ist es möglich, eine Methode vor und nach allen Tests in der Baugruppe auszuführen?

Ich kann das SetUp nicht verwenden, da es sich auf Fixtures bezieht und ich es vor und nach allem machen will.

Wissen Sie, wer es ausführen soll?


Ich bin vertraut mit dem SetUp und TearDown Attribut. Lass es mich nochmal erklären.

Ich brauche eine Logik, die ausgeführt wird, bevor alle Tests von allen Fixtures gestartet werden (AKA - Erster Test in der gesamten Baugruppe) und auch eine Logik, die ausgeführt wird, nachdem alle Tests von allen Fixtures beendet wurden (AKA - Letzter Test im gesamten Versammlung).

Antwort

7

Sicher. Das sind die Attribute [TestSetUp] und [TearDown]. Verwechseln Sie sie nicht mit [TestFixtureSetUp] und [TestFixtureTearDown], die vor dem ersten Test und nach dem letzten ausgeführt werden.

1

Die nächste Sache in nunit ist die SetupFixture Attribut, mit dem Sie eine Klasse zu markieren, Setup/Teardown für alle Test Fixtures in einem Namespace tun;

Die SetUp-Methode in einer SetUpFixture wird einmal vor einem der in ihrem Namensraum enthaltenen Fixtures ausgeführt. Die TearDown-Methode wird einmal ausgeführt, nachdem alle Fixtures die Ausführung abgeschlossen haben.

14

Wenn alle Prüfvorrichtungen im gleichen Namensraum sind, dann können Sie das [SetUpFixture] Attribut verwenden, um eine Klasse, die als globale Auf- und Abbau zu markieren. Sie können dann alle Ihre Anmelde-/Abmeldefunktionen dort einfügen.

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 
     } 
    } 
} 

See: 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 
     } 
    } 
} 

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

+5

In NUnit seine 3.x jetzt ' [OneTimeSetUp] 'und' [OneTimeTearDown] ' – Sousuke

2

Vor der Ausführung der einzelnen Testfälle [SetUp] Abschnitt ausgeführt wird

nach Abschluss der Ausführung der einzelnen Testfälle [TearDown] Abschnitt ausgeführt wird.

wenn wir Variablen initialisieren möchten, schreiben wir oft in [SetUp] Abschnitt wie ein Konstruktor

wenn wir jedes Objekt entsorgen wollen wir oft in [TearDown] Abschnitt schreiben

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

    [TearDown] 
    public void TearDown() 
    { 
     //dispose objects 
    } 
+0

@boger: Ihr Problem gelöst? – Sumeshk

Verwandte Themen