Tests fonctionnels du bon fonctionnement de Voozanoo4
GETTING STARTED
L’outil de test fonctionnel se base sur une implémentation du ScriptPlayer.
Un plan de test est défini qui va itérer sur chaque script demandé et fournir les paramètres requis à son bon fonctionnement.
CMD
CLI commande pour lancer les tests functional basiques.
php /var/www/app/resources/cron/voo4_cli.php mtd=tests tests=functional/basic verbose_on_error=true
CLI commande pour lancer les tests par environnements visant les applications en production.
php /var/www/app/resources/cron/voo4_cli.php mtd=tests tests=conf verbose_on_error=true
Le paramètre verbose_on_error
est optionnel mais permet d’avoir plus d’informations directement dans le terminal. Sinon, il faut aller chercher le fichier result.json
pour avoir les informations.
Resultat
Tout va bien
Quelque chose ne s’est pas bien passé
Fichiers
Configuration
Voozanoo4/src/resources/xml_resources/tests/functional/basic/voozanoo4-tests.xml
Le module de tests se base sur le ScriptPlayer.
Chaque balise <tests>
de ce fichier correspond au lancement de la commande Exec()
d’un script.
<tests type="nom_du_script" label="Check if it works" my_param="hello" />
Les scripts disponibles sont déclarés ici:
Voozanoo4/src/library/Resource/XML/ScriptPlayer/Action/Tests/
Exemple
<tests
type="apply_action_list"
label="Prepare VOO4-1816"
action_file="JIRA/VOO4-1816/action_file.json"
/>
Cette balise va lancer le script Core_Library_Resource_XML_ScriptPlayer_Action_Tests_ApplyActionList
avec pour paramètre action_file = "JIRA/VOO4-1816/action_file.json"
.
Mise en erreur volontaire
Parfois un test consiste à appeler un script, que l’on sait qu’il devrait échouer, et s’assurer qu’il y a bien une exception qui est levée.
C’est possible en ajoutant le paramètre expect_error="true"
.
Exemple
<tests
type="apply_action_list"
label="Prepare VOO4-1816"
action_file="JIRA/VOO4-1816/action_file.json"
expect_error="true"
/>
Dans cet exemple, on va s’attendre à ce que le script Core_Library_Resource_XML_ScriptPlayer_Action_Tests_ApplyActionList
nous renvoie une erreur lors de son execution.
Si l’execution remonte bien une erreur, celle-ci va être masquée et le résultat final sera un test concluant.
Si il n’y a aucune erreur, le résultat final l’indique et met le test en échec.
Scripts existants
Subscripts
Permet de lancer un plan de test et ainsi avoir un découpage et une arborescence de ceux-ci.
<tests type="subscripts" label="Les tests JIRA" path="./jira"/>
ApplyActionList
Joue une liste d’action epicraft sur le projet courant.
nom du paramètre | . |
---|---|
action_file | chemin relatif vers un json d’action |
<tests
type="apply_action_list"
label="Prepare VOO4-1816"
action_file="JIRA/VOO4-1816/action_file.json"
/>
CompareResourceWithLocalFile
Compare un fichier XML provenant des ressources DB Voo4 avec un fichier stocké localement.
nom du paramètre | . |
---|---|
resource_name | nom d’un varset |
resource_id | resource_id dans la base (form/homepage) |
file_path | chemin relatif vers un XML local de référence pour la comparaison |
raw_resource | obligatoire si n’est pas un varset/form/homepage |
Pour un varset:
Le script va parcourir tous les Core_Library_Resource_XML_VarSet
et trouver celui dont l’attribut “name” correspond.
<tests
type="compare_resource_with_local_file" label="Mon Test"
resource_name="mon_varset" file_path="mon_varset.xml"
/>
Pour un formulaire ou une page d’accueil:
Le script va parcourir tous les Core_Library_Resource_XML_Frame_Form
/Core_Library_Resource_XML_Homepage
et trouver celui dont l’attribut “editor_id” correspond.
<tests
type="compare_resource_with_local_file" label="Mon Test"
resource_id="dmetkltuzx1488734699999" file_path="mon_formulaire.xml"
/>
Pour une ressource “autre”:
Le script va uniquement se baser sur le champ resource_id
de la table prj_resource_data
.
<tests
type="compare_resource_with_local_file" label="Mon Test"
resource_id="dmetkltuzx1488734699999" file_path="mon_formulaire.xml"
raw_resource="true"
/>
AsyncExport
Lance un export asynchrone et compare son résultat avec un fichier de référence.
nom du paramètre | . |
---|---|
dataquery_file | chemin relatif vers le dataquery utilisé pour l’export |
compared_local_file | chemin relatif vers le CSV de référence |
<tests type="async_export"
label="Récupération des données avec l'export asynchrone et comparaison avec un CSV local"
dataquery_file="xml/export.dataquery.xml"
compared_local_file="csv/patient.csv"
/>
AddRightOnVarset
Ajoute une entrée dans la table pj_group_mode
pour que l’utilisateur courant des tests ait les droits demandés sur le varset.
nom du paramètre | . | valeur par défaut |
---|---|---|
varset_name | nom du varset | |
right | Droit à appliquer sur le varset | 56 (000 111 000) |
<tests type="add_right_on_varset"
label="ajout de droit sur le varset (pour importer des données de test)"
varset_name="patient"
/>
LoadForm
Crée une requête http vers le formulaire pour s’assurer qu’il se charge correctement. L’identification se fait par un token qui est créé automatiquement. Celui-ci possède tous les droits en lecture pour tous les varsets utilisés dans le formulaire.
nom du paramètre | . | valeur par défaut |
---|---|---|
form_sid | sid du formulaire |
<tests type="load_form"
label="vérifie que le formulaire se charge"
form_sid="wvkbqswjhk1618407949903"
/>