Téléchargement des produits


Version anglaise


 

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.


a) Configuration d'un projet de test


Créez un répertoire dans lequel vous placerez tous les fichiers et tous les répertoires récupérés sous %ADELIWS%\Unit_Tests\Gradle.


Modifications du fichier build.gradle :

import javax.xml.transform.stream.StreamSource 

import javax.xml.transform.stream.StreamResult
import javax.xml.transform.Source
import javax.xml.transform.Transformer
import javax.xml.transform.TransformerFactory

apply plugin: 'java'

group = '[ORGANISATION ID]'

version = '[PROJECT VERSION]'

description = "Adelia unitary test"

tasks.withType(JavaCompile) {

    options.encoding = 'UTF-8'

}

repositories {

        mavenLocal()

        mavenCentral()

}

dependencies {

    testCompile fileTree(dir: "${System.env.ADELIWS}javarun" , include: '*.jar')

testCompile "junit:junit:4.9"  

}

task adelGen {

doLast{

if (System.getProperty("skip.gen.test.pgm") == null) {

exec{

environment  "javaSourceDirectory" , "${projectDir}\\src\\test\\java\\" 

environment  "CLASSPATH" , "${System.env.ADELIWS}javarun;${System.env.ADELIWS}javarun\\*"

//*******************************************************************

environment  "adeliaEnvironment" ,"[ENVIRONMENT NAME]"

environment  "adeliaTask01" , "[ADELIA TASK NAME]"

//*****************************

environment  "winJavaSvrDir" , "[WINDOWS JAVA SERVER DIRECTORY]"

environment  "AS400SvrLib" , "[AS/400 SERVER LIBRARY]"

environment  "AS400SvrHost" , "[AS/400 SERVER HOST]"

environment  "AS400SvrPort" , "[AS/400 SERVER PORT]"

environment  "AS400SvrProfile" , "[AS/400 SERVER PROFILE]"

environment  "AS400SvrPwd" , "[AS/400 SERVER PASSWORD]"

environment  "AS400SvrEncryptPwd" , "[AS/400 SERVER ENCRYPTED PASSWORD]"

environment  "AS400SvrJobdLib" , "[AS/400 SERVER JOBD LIBRARY]"

environment  "AS400SvrJobdName" , "[AS/400 SERVER JOBD NAME]"

//*******************************************************************

executable "AGPTS.exe"

}

}

else {

copy{

from "${System.env.ADELIWS}CHKTSTREF.java"

into "${projectDir}\\src\\test\\java\\com\\hardis\\adelia\\test"

rename 'CHKTSTREF.java' , 'CHKTST.java'

}

}

}

}

compileTestJava.mustRunAfter(adelGen)

// **********************************************************************

task [GRADLE TASK NAME](type : Test , dependsOn: adelGen ) {

group 'adeliaUnitTest'

ignoreFailures true

systemProperty 'adeliaPhysicalServerHost', '[MIDDLEWARE SERVER]'

systemProperty 'adeliaPhysicalServerPort', '[PORT]'

systemProperty 'adeliaPhysicalServerProfile', '[MIDDLEWARE PROFILE]'

systemProperty 'adeliaPhysicalServerPassword', '[PASSWORD]'

systemProperty 'adeliaLogicalServer', '[LOGICAL SERVER NAME]'

systemProperty 'adeliaDatabase', '[DB TEST NAME]'

include '**/*.class'

exclude 'com/hardis/adelia/test/CHKTST.class'

}

// ***********************************************************************

test {

systemProperty 'adeliaTestType', 'gradle'

systemProperty 'reportDirectory' , "${projectDir}\\build\\test-results\\"

systemProperty 'noXslStyleSheet', 'true'

include 'com/hardis/adelia/test/CHKTST.class'

}

gradle.taskGraph.afterTask { task, state →

if (task.name   == "test") {

def xslt= new File("${System.env.ADELIWS}AdeliaTestsReport.xsl").getText()

def transformer = TransformerFactory.newInstance().newTransformer(new StreamSource(new StringReader(xslt)))

def xml= new File("${projectDir}/build/test-results/AdeliaTestsReport.xml").getText()

def html = new FileOutputStream("${projectDir}/build/test-results/AdeliaTestsReport.html")

transformer.transform(new StreamSource(new StringReader(xml)), new StreamResult(html))

logger.lifecycle("Global test Report: file:///${projectDir}/build/test-results/AdeliaTestsReport.html)

}

}

test.dependsOn {tasks.findAll { task ->  task.group == "adeliaUnitTest" }}


Les paramètres sont les suivants :

ORGANISATION ID

Identifiant de l'organisation (par exemple com.mycompany.myappli)

PROJECT VERSION

Version de votre projet (par exemple 1.0.0)

ENVIRONMENT NAME

Nom de l'environnement Adélia contenant vos programmes de test

ADELIA 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 Adélia, créez des éléments supplémentaires : <adeliaTask02> , <adeliaTask03>…  (numéros consécutifs et limités à 99 maximum).

WINDOWS JAVA SERVER DIRECTORY

Nom complet du répertoire racine où seront générés les sources et les objets des parties serveur Windows ou Java de vos programmes de test.

Attention : il faut penser à doubler les \ du chemin (par exemple : C:\\myDir1\\myDirGen)

Ce paramètre est facultatif.

S'il n'est pas renseigné, les paramètres standard de votre environnement seront utilisés.

S'il est renseigné, alors la compilation C ou Java se fera avec le compilateur C ou le JDK Java installé sur la machine où est exécuté le test.

Les sources des parties serveur Windows seront placés dans le sous-répertoire WinServer\src.

Les objets des parties serveur Windows seront placés dans le sous-répertoire WinServer\obj.

Les sources des parties serveur Java seront placés dans le sous-répertoire JavaServer\src.

Les objets des parties serveur Java seront placés dans le sous-répertoire JavaServer\obj.

AS/400 SERVER LIBRARY

Bibliothèque où seront générés les sources et les objets des parties serveur AS/400 de vos programmes de test.

Ce paramètre est facultatif.

S'il n'est pas renseigné, le paramètre standard de votre environnement sera utilisé.

AS/400 SERVER HOST

Nom d'hôte ou adresse IP de l'AS/400 où seront compilées les parties serveur AS/400 de vos programmes de test.

Ce paramètre est facultatif.

S'il n'est pas renseigné, le paramètre standard de votre environnement sera utilisé.

AS/400 SERVER PORT

Port d'écoute du démon middleware Adélia de l'AS/400 où seront compilées les parties serveur AS/400 de vos programmes de test.

Ce paramètre est facultatif.

S'il n'est pas renseigné, le paramètre standard de votre environnement sera utilisé.

AS/400 SERVER PROFILE

Profil utilisateur à utiliser pour la connexion au démon middleware Adélia de l'AS/400 où seront compilées les parties serveur AS/400 de vos programmes de test.

Ce paramètre est facultatif.  

S'il n'est pas renseigné, le paramètre standard de votre environnement sera utilisé.

AS/400 SERVER PASSWORD

Mot de passe en clair associé au profil utilisateur à utiliser pour la connexion au démon middleware Adélia de l'AS/400 où seront compilées les parties serveur AS/400 de vos programmes de test.

Ce paramètre est facultatif.

S'il est renseigné, alors la valeur AS/400 SERVER ENCRYPTED PASSWORD ne doit pas être renseignée.

S'il n'est pas renseigné, le paramètre standard de votre environnement sera utilisé.
AS/400 SERVER ENCRYPTED PASSWORD

Mot de passe chiffré associé au profil utilisateur à utiliser pour la connexion au démon middleware Adélia de l'AS/400 où seront compilées les parties serveur AS/400 de vos programmes de test.

Le chiffrement correspond au chiffrement des mots de passe du fichier mwclient.ini (ou celui fourni par la fonction VaToolBxEncryptAdeliaPassword).

Ce paramètre est facultatif.

S'il est renseigné, alors la valeur AS/400 SERVER PASSWORD ne doit pas être renseignée.

S'il n'est pas renseigné, le paramètre standard de votre environnement sera utilisé.

AS/400 SERVER JOBD LIBRARY

Nom de la bibliothèque de la description de travail à utiliser pour le contexte de compilation des parties serveur AS/400 de vos programmes de test.

Ce paramètre est facultatif.

S'il n'est pas renseigné, le paramètre standard de votre environnement sera utilisé.

AS/400 SERVER JOBD NAME

Nom de la description de travail à utiliser pour le contexte de compilation des parties serveur AS/400 de vos programmes de test.

Ce paramètre est facultatif.

S'il n'est pas renseigné, le paramètre standard de votre environnement sera utilisé.

GRADLE TASK NAME

Nom de la tâche Gradle effectuant le test (ce nom doit être différent de "test").

Ce nom sera visible dans le rapport des tests.

Par exemple, dans le cas où deux tâches (task) Gradle seraient définies pour exécuter les tests dans un contexte d'un serveur Middleware Windows et d'un serveur Middleware AS/400, on pourrait nommer la première testSERVEUR_WINDOWS et la seconde testSERVEUR_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 build.gradle, 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 de la tâche "[GRADLE TASK NAME]" puis
  • changez son nom et ajustez ses paramètres.


Si certains programmes de test doivent s'exécuter dans un contexte d'exécution particulier (et donc pour une tâche de test particulière) et pas dans un autre, vous pouvez paramétrer ce cas particulier à l'aide des balises <include> et <exclude> en nommant directement le chemin de la classe 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.



b) 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 build.gradle) et lancez la commande suivante :

gradlew clean test


Remarque : lors du premier lancement de la commande, votre machine doit avoir un accès internet afin que Gradle puisse télécharger certains composants cités dans le fichier build.gradle.


Si aucune erreur n'est détectée lors de la phase préparatoire des tests (analyse du fichier build.gradle, génération des programmes de test), vous trouverez sous votre répertoire de projet de test, dans le répertoire build/test-results", les fichiers de rapport des tests unitaires AdeliaTestsReport.xml et AdeliaTestsReport.html.

Le fichier AdeliaTestsReport.html présente les résultats du test sous la forme suivante :



Remarques :

Si la propriété "noXslStyleSheet" de la tâche "test" a la valeur "false", alors le fichier AdeliaTestsReport.xml sera associé à une feuille de style (AdeliaTestsReport.xsl) qui lui permettra de présenter les résultats dans un navigateur Microsoft Edge ou FireFox, sous la même forme que le document AdeliaTestsReport.html (attention, les feuilles de styles locales ne sont pas acceptées par le navigateur Chrome).


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 :

gradlew -Dskip.gen.test.pgm=true clean 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 build.gradle

-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


↑ Haut de page

  • Aucune étiquette