Tests fonctionnels du bon fonctionnement de Voozanoo4

Edit me

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

fine

Quelque chose ne s’est pas bien passé

wrong

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.

arborescence

<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"
/>