2013-08-28 12 views
10

Mi piacerebbe costruire un progetto nunit per l'automazione ui selenio. Vorrei accedere al sito prima di eseguire tutti i test (tutti) e chiudere il browser dopo aver eseguito tutti i test (tutti).È possibile eseguire un metodo prima e dopo tutti i test nell'assieme?

Non riesco a utilizzare il SetUp poiché si riferisce ai dispositivi e voglio farlo prima e dopo tutto.

Sai chi eseguire?


Conosco l'attributo SetUp e TearDown. Lasciami spiegare di nuovo.

Ho bisogno di un po 'di logica per essere eseguito prima che inizino tutti i test da tutti i dispositivi (AKA - Primo test nell'intero assieme) e anche qualche logica da eseguire dopo tutti i test da tutti i dispositivi terminati (AKA - Ultimo test nell'intero montaggio).

risposta

7

Sicuro. Ecco a cosa servono gli attributi [TestSetUp] e [TearDown]. Non confonderli con [TestFixtureSetUp] e [TestFixtureTearDown], che vengono eseguiti prima del primo test e dopo l'ultimo.

1

La cosa più vicina a nunit è l'attributo SetupFixture, che consente di taggare una classe per eseguire l'installazione/rimozione per tutti i proiettori di prova in uno spazio dei nomi;

Il metodo SetUp in un SetUpFixture viene eseguito una volta prima di uno dei dispositivi contenuti nel suo spazio dei nomi. Il metodo TearDown viene eseguito una volta dopo che tutti i dispositivi hanno completato l'esecuzione.

14

Se tutti i vostri dispositivi di prova sono all'interno dello stesso spazio dei nomi, è possibile utilizzare l'attributo [SetUpFixture] per contrassegnare una classe come la configurazione globale e teardown. È quindi possibile inserire tutte le funzionalità di accesso/disconnessione.

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 3.x sua ora ' [OneTimeSetUp] 'e' [OneTimeTearDown] ' – Sousuke

2

Prima di eseguire ogni test case [SetUp] sezione eseguita

dopo completata l'esecuzione di ogni test case verrà eseguito [TearDown] sezione.

se vogliamo inizializzare le variabili che spesso scrivono in [SetUp] sezione come un costruttore

se vogliamo smaltire qualsiasi oggetto scriviamo spesso in [TearDown] sezione

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

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

@boger: il problema è stato risolto? – Sumeshk

Problemi correlati