Comment ajouter le fichier testng.xml à la racine du fichier *-tests.jar dans mon package de test Appium Java TestNG pour AWS Device Farm ?

Dernière mise à jour : 01/12/2021

Je souhaite configurer les tests Appium Java TestNG pour mon projet AWS Device Farm. Cependant, je dois d'abord ajouter un fichier testng.xml à la racine du fichier *-tests.jar dans mon package de test Appium. Comment puis-je procéder ?

Brève description

Configurez le fichier pom.xml Apache Maven pour empaqueter votre fichier testng.xml à la racine du fichier *-tests.jar de votre package de test Appium.

Remarque : dans l'environnement de test standard de Device Farm, seul un sous-ensemble des fonctionnalités du fichier testng.xml est pris en charge. Utilisez l'environnement de test personnalisé si votre projet nécessite l'une des fonctionnalités de fichier testng.xml suivantes :

  • Priorité
  • Balises 'include' et 'exclude'
  • Regroupement complexe
  • Tous les paramètres TestNG définis dans votre fichier testng.xml

Résolution

1.    Dans votre fichier pom.xml Apache Maven, vérifiez que la balise testResources inclut le répertoire suivant : src/test/resources. Si vous ne voyez pas le répertoire, ajoutez la configuration de répertoire suivante au fichier :

<testResources>
     <testResource>
        <directory>${project.basedir}/src/test/resources</directory>
     </testResource>
</testResources>

Remarque : vous pouvez spécifier un autre répertoire à utiliser pour cette procédure. Si vous choisissez d'utiliser un autre répertoire, assurez-vous d'utiliser ce même répertoire aux étapes 2 et 3.

2.    Ajoutez votre fichier testng.xml au répertoire src/test/resources de votre fichier pom.xml.

3.    (Facultatif) Pour exécuter des tests localement, ajoutez le plugin Maven Surefire suivant à la liste <plugins> de votre fichier pom.xml.

<plugin>
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.12.4</version> 
    <configuration>
       <suiteXmlFiles> <suiteXmlFile>src/test/resources/testng.xml</suiteXmlFile></suiteXmlFiles>
    </configuration>
</plugin>

Remarque : Toutefois, la bonne pratique consiste à exécuter les tests localement avant de les charger dans Device Farm. Le plugin Maven Surefire permet à votre fichier pom.xml de référencer votre fichier testng.xml lors des tests locaux.

4.    Nettoyez le répertoire cible de votre fichier pom.xml et reconditionnez vos fichiers de test en exécutant la commande Maven suivante :

$ mvn clean package -DskipTests=true

Remarque : la valeur DSkipTests=True indique que la construction n'exécutera pas les tests unitaires.

La commande crée un fichier zip-with-dependencies.zip dans le répertoire cible de votre fichier pom.xml. Ce fichier zip est votre package de test Appium et inclut votre fichier testng.xml à la racine de son fichier *-tests.jar.

5.    Vérifiez que votre fichier testng.xml se trouve à la racine du fichier *-tests.jar de votre package de test Appium en exécutant l'une des commandes suivantes :

Pour voir un instantané des fichiers de votre fichier *-tests.jar, exécutez la commande jar suivante :

$ jar tvf foo-1.0.0-SNAPSHOT-tests.jar

-ou-

Pour extraire tous les fichiers de votre fichier *-tests.jar dans un dossier, exécutez la commande de décompression suivante :

$ unzip foo-1.0.0-SNAPSHOT-tests.jar -d sampletestsjarcontents

Vous pouvez maintenant télécharger votre package de test sur Device Farm et créer un test à l'aide de votre application et du fichier zip-with-dependencies.zip.