Remarque : cette configuration est maintenue actuellement pour des raisons de compatibilité mais elle est considérée comme obsolète. Nous vous recommandons de définir vos nouveaux projets de test avec Gradle (utilisé aussi pour le build Adélia).
Le poste d'exécution du test doit être un poste Windows :
- sur lequel le produit Adélia est installé,
- qui a accès à l'environnement Adélia, qui contient les programmes de test, et
- où est installé MAVEN.
a) Installation de MAVEN
Allez sur le site https://maven.apache.org/download.cgi et téléchargez un fichier "Binary zip archive" de Apache-Maven.
Dézippez le fichier sur votre machine puis modifier le path de votre machine : le remplacer avec le chemin du répertoire bin de Maven.
b) Configuration d'un projet de test
Créez un répertoire dans lequel vous placerez le fichier pom.xml et le répertoire "src" récupérés sous %ADELIWS%\Unit_Tests\Maven.
Modifications du fichier pom.xml :
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>[ORGANISATION ID]</groupId>
<artifactId>[PROJECT ID]</artifactId>
<version>[PROJECT VERSION]</version>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.9</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.hardis.adelia</groupId>
<artifactId>adeljrt</artifactId>
<version>[ADELJRT VERSION]</version>
<scope>system</scope>
<systemPath>${env.ADELIWS}\javarun\adeljrt-[ADELJRT VERSION].jar</systemPath>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.4.0</version>
<executions>
<execution>
<id>generate-test-pgm</id>
<phase>generate-test-sources</phase>
<goals>
<goal>exec</goal>
</goals>
</execution>
</executions>
<configuration>
<executable>AGPTS</executable>
<skip>${skip.gen.test.pgm}</skip>
<environmentVariables>
<javaSourceDirectory>${project.basedir}\src\test\java\</javaSourceDirectory>
<adeliaEnvironment>[ENVIRONMENT NAME]</adeliaEnvironment>
<adeliaTask01>[TASK NAME]</adeliaTask01>
</environmentVariables>
</configuration>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12.4</version>
<executions>
<execution>
<id>default-test</id>
<phase>test</phase>
<configuration>
<includes>
<include>**/*.java</include>
</includes>
<excludes>
<exlude>com/hardis/adelia/test/CHKTST.java</exlude>
</excludes>
<testFailureIgnore>true</testFailureIgnore>
<reportNameSuffix>[EXECUTION CONTEXT NAME]</reportNameSuffix>
<systemPropertyVariables>
<adeliaPhysicalServerHost>[MIDDLEWARE SERVER]</adeliaPhysicalServerHost>
<adeliaPhysicalServerPort>[PORT]</adeliaPhysicalServerPort>
<adeliaPhysicalServerProfile>[MIDDLEWARE PROFILE]</adeliaPhysicalServerProfile>
<adeliaPhysicalServerPassword>[PASSWORD]</adeliaPhysicalServerPassword>
<adeliaLogicalServer>[LOGICAL SERVER NAME]</adeliaLogicalServer>
<adeliaDatabase>[DB TEST NAME]</adeliaDatabase>
</systemPropertyVariables>
</configuration>
</execution>
<execution>
<id>final-report</id>
<phase>test</phase>
<goals>
<goal>test</goal>
</goals>
<configuration>
<includes>
<include>com/hardis/adelia/test/CHKTST.java</include>
</includes>
<reportNameSuffix>REPORT</reportNameSuffix>
<systemPropertyVariables>
<reportDirectory>${project.build.directory}\surefire-reports\</reportDirectory>
<noXslStyleSheet>false</noXslStyleSheet>
</systemPropertyVariables>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<properties>
<skip.gen.test.pgm>false</skip.gen.test.pgm>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
</project>
Les paramètres sont les suivants :
ORGANISATION ID |
Identifiant de l'organisation (par exemple com.mycompany.myappli) |
PROJECT ID |
Nom du projet (par exemple MonAppli) |
VERSION |
Version de votre projet (par exemple 1.0.0) |
ADELJRT VERSION |
Version du fichier adeljrt.jar de votre version d'Adélia. Mettre le même numéro de version que celui qui est fourni dans les répertoires %ADELIWS%\javarun du poste (par exemple mettre 13.4.0 si dans le sous-dossier javarun vous avez le fichier adelijrt-13.4.0.jar) |
ENVIRONMENT NAME |
Nom de l'environnement Adélia contenant vos programmes de test |
TASK NAME |
Nom de la tâche Adélia contenant vos programmes de test. Si vos programmes de test sont répartis sur plusieurs tâches, créez des éléments supplémentaires : <adeliaTask02> , <adeliaTask03>… (numéros consécutifs et limités à 99 maximum). |
EXECUTION CONTEXT NAME |
Nom servant à identifier un contexte d'exécution des tests. Ce nom sera visible dans le rapport des tests. Par exemple, dans le cas où deux blocs d'exécution seraient définis pour exécuter les tests dans un contexte d'un serveur Middleware Windows et d'un serveur Middleware AS/400, on pourrait nommer le 1er bloc SERVEUR_WINDOWS et le second SERVEUR_AS400. |
Les paramètres suivants ne sont pas à proprement parler des paramètres du Framework mais sont une illustration de la méthode à utiliser pour transmettre, depuis le fichier pom.xml, des informations contextuelles aux programmes de test.
Dans le cas présent, ces paramètres servent à gérer la connexion Middleware dynamique utilisée par la règle de gestion CONFIG_TEST.
MIDDLEWARE SERVER |
Nom ou adresse IP du serveur Middleware |
PORT |
Port d'écoute du démon Middleware |
MIDDLEWARE PROFILE |
Profil de connexion Middleware |
PASSWORD |
Mot de passe associé au profil Middleware |
LOGICAL SERVER NAME |
Nom du serveur logique utilisé par les programmes de test |
DB TEST NAME |
Nom de la BD de test définie dans le fichier de configuration serveur. *DFT correspond à la base par défaut et *NONE est utilisé lorsqu'on ne veut pas de connexion à une BD. |
Si vous avez besoin de plusieurs contextes d'exécution de vos tests, vous pouvez ajouter un second bloc d'exécution. Pour cela :
- dupliquez le bloc ayant l'ID "default-test" (du plugin "maven-surefire-plugin") puis
- changez l'ID et ajustez ses paramètres.
Attention : le bloc d'exécution ayant l'ID "final-report", qui sert à fabriquer le rapport des tests, doit toujours être laissé à la fin et ne pas être modifié.
Si certains programmes de test doivent s'exécuter dans un contexte d'exécution particulier et pas dans un autre, vous pouvez paramétrer ce cas particulier à l'aide des balises <include> et <exclude> en nommant directement le chemin du source java.
Veillez à utiliser le / à place du point dans le package.
Vous pouvez utiliser des noms génériques par rapport à un package (par exemple com/mestests/AS400/*.java) : en mettant vos programmes de test dans des tâches différentes, ils pourront avoir un package différent même s'ils sont dans le même domaine.
c) Lancement du test
Attention : si vos programmes de tests ont des parties serveur AS/400, vous devez être, sur votre AS/400, au moins au niveau de la PTF F003 de la partie AS/400 d'Adélia Studio 13.
Pour lancer le test, ouvrez une fenêtre de commande Windows, placez-vous dans le répertoire de votre projet de test (celui qui contient votre fichier pom.xml) et lancez la commande suivante :
mvn clean test
Remarque : lors du premier lancement de la commande, votre machine doit avoir un accès internet afin que Maven puisse télécharger certains composants cités dans le fichier pom.xml.
Si aucune erreur n'est détectée lors de la phase préparatoire des tests (analyse du fichier pom.xml, génération des programmes de test), vous trouverez sous votre répertoire de projet de test, dans le répertoire "target/surefire-reports", le fichier rapport des tests unitaires AdeliaTestsReport.xml.
Une feuille de style est associée à ce fichier (AdeliaTestsReport.xsl). Elle permet de présenter les résultats, dans un navigateur Internet Explorer ou FireFox, sous la forme d'une page html ressemblant à celle présentée ci-dessous :
Attention : les feuilles de style locales ne sont pas acceptées par le navigateur Chrome. Vous pouvez désactiver la prise en compte de la feuille de style en remplaçant, dans votre fichier pom.xml, la valeur "false" par "true" pour la balise "noXslStyleSheet" du bloc d'exécution "final-report" du plugin "maven-surefire-plugin".
Remarque : si vous souhaitez exécuter à nouveau les mêmes tests que ceux effectués lors de la précédente exécution, mais en sautant l'étape de génération des programmes de test, vous pouvez le faire en lançant la commande suivante :
mvn -Dskip.gen.test.pgm=true test
Liste des codes erreur :
Erreurs liées à l'exécution du plug-in : org.codehaus.mojo:exec-maven-plugin
-1 à -4 : Erreurs liées à la commande ADELJOB
-5 : La génération ou la compilation d'un programme de test a échoué (ouvrir le gestionnaire de travaux plus avoir plus d'information sur l'erreur)
-10 : Une tâche indiquée dans une balise adeliaTaskxx n'existe pas dans l'environnement
-11 : Une tâche indiquée dans une balise adeliaTaskxx n'est pas une tâche de type test
-50 : Impossible de charger une dll du produit Adélia
-51 : Le nom de l'environnement Adélia n'est pas indiqué dans le fichier pom.xml
-52 : Erreur lors de la connexion à l'environnement
-53 : Erreur lors de la récupération d'informations sur l'environnement.
-55 : Erreur lors de la copie du fichier com/hardis/adelia/test/CHKTST.java sous le répertoire du projet de test