Comment Assurer un @de la Méthode de Test s'Exécute Toujours Avant Tout les Autres Indépendamment de la Classe, de la Suite ou du Groupe?
Ma lecture de la TestNG docs suggère que si j'ai une méthode d'essai marqué, comme ceci:
@BeforeSuite(alwaysRun = true)
@Test
public void MyTestMethod { ... }
puis MyTestMethod
sera lancé avant toute autre test définie n'importe où, indépendamment de la classe, de la suite ou du groupe. Mais cela ne semble pas être le cas.
Est-il un moyen de faire un test d'exécution de méthode inconditionnellement avant tout le reste? (Et que si elle échoue, aucun autre test sera exécuté.)
Edit:
La classe de test:
class Suite_Setup
extends BaseTestSuite
{
@BeforeSuite(alwaysRun = true)
def setup() {
System.out.println("Conducting test suite setup...")
//Verify that the internal API is configured properly and that the API host is available...
new Action(ApiHostname, new BasicCookieStore)
}
}
Edit:
La réponse:
Nous créer nos propres TestNG.xml les fichiers (automatiquement) et l' @BeforeSuite méthode n'était pas inclus. Une fois qu'il a été inclus, @BeforeSuite
eu l'effet escompté.
Cependant, il semble que les deux @BeforeSuite
(et probablement d'autres @Before...
et @After...
annotations) peut être mélangé avec @Test
et plutôt que de l'inhibition de l'exécution de la méthode annotée, ils causent à exécuter plus d'une fois!
Aussi, je m'en voudrais de ne pas indiquant la version de TestNG je suis en utilisant. C'est 6.2.
- pouvez-vous préciser comment avez-vous d'inclure BeforeSuite annotation méthode TestNG.xml ? J'ai obligation d'exécuter plusieurs classes en parallèle et besoin pour exécuter le programme d'installation méthode avec BeforeSteuie annotation
Vous devez vous connecter pour publier un commentaire.
Essayez d'utiliser des groupes, soit sur le niveau de la classe ou au niveau de la méthode.
Dans mon cas, j'ai un ensemble de tests de fumée qui doivent s'exécuter avant tout et si l'un de ces échec, pas d'autres tests doivent être exécutés.
Et toutes les autres classes, avec des tests sont les suivants:
Je pense que la réponse est
Dans l'exemple suivant, le testRemove sera exécuté après testInsert, testReadAll et testUpdate ont couru.
testReadAll sera exécuté après testInsert a exécuter.
testUpdate sera exécuté après testInsert a exécuter.
Notez qu'il n'y a pas de dépendance entre testReadAll et testUpdate.
@Test (alwaysRun=True)
fait le test de toujours exécuter indépendamment des méthodes ou des groupes dont il dépend, et il est échoué
Supprimer
@Test
, une méthode ne peut pas être à la fois une configuration et une méthode de test.Juste essayer d'attribuer à la cible de test de la priorité la plus faible valeur.
Vous pouvez en lire plus à propos de TestNG test priorité sur il y.
Vous besoin de faire d'autres tests selon cette méthode de test en utilisant l'une des options suivantes:
Si vous utilisez l'une des options des dépendances vous n'avez pas besoin de fournir une priorité pour votre première méthode.