2017-06-27 6 views
-1

J'ai environ 5 classes différentes avec des tests JUnit (tests au sélénium). J'ai besoin d'un moyen de démonter le webdriver à la fin du programme. J'ai donc besoin de savoir où mettre @AfterClass et comment passer le driver pour qu'il puisse être fermé.Comment faire pour supprimer le webdriver sélénium lorsque les @tests sont dans des classes différentes

J'ai pensé à créer une combinaison de test et implémenter le & AfterClass tearDownClass() là. Mais je ne suis pas sûr de savoir comment passer le conducteur pour le fermer.

+0

il n'a rien à voir avec Sélénium, c'est un concept de base POO. s'il vous plaît lire quelques livres sur core java. –

Répondre

0

Vous pouvez utiliser le code ci-dessous

[OneTimeTearDown] 
     public void SetupTestTeardown() 
     { 
      KillDriver(); 
      Assert.AreEqual("", verificationErrors.ToString()); 
     } 

L'attribut OneTimeTearDown est héritée de toute classe de base. Par conséquent, si une classe de base a défini une méthode OneTimeTearDown, cette méthode sera appelée après toutes les méthodes de test de la classe dérivée.

Vous pouvez définir une méthode OneTimeTearDown dans la classe de base et une autre dans la classe dérivée. NUnit appellera les méthodes de classe de base OneTimeTearDown après celles des classes dérivées.

+0

merci, j'ai une super classe qui est héritée par toutes mes classes de test. Cependant, il n'a pas d'attribut de pilote. Le pilote est instancié dans une classe différente. Alors encore une fois - comment puis-je passer le pilote à cette classe héritée afin que je puisse le tuer gentiment? –

+0

@naamaZrihen - Cela a-t-il fonctionné? – Kapil

0

Ajoutez @BeforeClass à votre superclasse. Initier le pilote dans cela. Pour cette raison, les classes de test hériteront également du pilote.

Ajouter le désassemblage du pilote dans votre superclasse dans @AfterClass