readme.md 4.7 KB

TESTS OPENACCESS

Fonctionnement des tests

Répertoires

Le fichier Access .\initial\projet0.zip contient l'application de test.

Les tests ont lieu dans le répertoire .\work

Les résultats sont contrôlés au moyen du contenu du répertoire .\reference

Le projet de départ

L'application project0.accdb sert de support de test.

Le fichier db.accdb contient les éventuelles tables liées. ATTENTION: la chaine de connexion des tables liées à db.accdb doit pointer vers .\work\db.accdb et non pas .\initial\db.accdb

Déroulement

Préparation des fichiers

  • Le dossier .\work est vidé

del /f /s /q .\work

  • Le dossier .\results est vidé

del /f /s /q .\results

  • .\initial\projet0.zip est extrait vers .\work\projet0.accdb

unzip .\initial\project0.zip -d .\work

  • .\initial\db.zip est extrait vers .\work\db.accdb

unzip .\initial\db.zip -d .\work

  • .\initial\empty_project.zip est extrait vers .\work\empty_project.accdb

unzip .\initial\empty_project.zip -d .\work

Création des sources

  • La fonction silent_export de OpenAccess est executée depuis le fichier .\work\project0.accdb (via la macro test_export de project0.accdb)

"C:\Program Files\Microsoft Office\Office14\MSACCESS.EXE" "C:\APPLIS_PARC\OpenAccess\tests\work\project0.accdb" /X test_export

Le répertoire .\work\source est créé

  • L'existence du fichier .\work\project0.zip créé par l'export est contrôlée

python assert_exists.py .\work\project0.zip

  • Les fichiers .\work\source\modules\test_methods.bas, .\work\source\macros\test_export.bas et .\work\source\macros\test_import.bas sont supprimés (ils ne font pas partie du périmètre des tests et leur présence provoquera des erreurs à l'import)

del .\work\source\modules\test_methods.bas del .\work\source\macros\test_export.bas del .\work\source\macros\test_import.bas

ATTENTION à s'assurer que ces fichiers ont aussi été supprimés de .\reference\source!

  • Le dossier .\work\source est copié vers .\results\source_1

xcopy .\works\source .\results\source1

Contrôle des résultats

  • La fonction compare.py est utilisée pour comparer le contenu des sous-répertoires et des fichiers sources ainsi créés à ceux contenus dans le répertoire .\reference\source

python compare.py .\work\source .\reference\source

Import des sources dans une base vide

  • La fonction silent_import de OpenAccess est executée depuis le fichier .\work\empty_project.accdb (via la macro test_import de empty_project.accdb)

"C:\Program Files\Microsoft Office\Office14\MSACCESS.EXE" "C:\APPLIS_PARC\OpenAccess\tests\work\empty_project.accdb" /X test_import

  • .\work\empty_project.accdb est copié vers .\results\result1.accdb

copy .\work\empty_project.accdb .\results\result1.accdb

  • L'existence du fichier .\work\empty_project.accdb.old créé par l'export est contrôlée

python assert_exists.py .\work\empty_project.accdb.old

Import des sources dans un projet existant

  • La fonction silent_import de OpenAccess est executée depuis le fichier .\work\project0.accdb (via la macro test_import de project0.accdb)

.\work\project0.accdb /X test_import

  • .\work\project0.accdb est copié vers .\results\result2.accdb

copy .\work\project0.accdb .\results\result2.accdb

  • L'existence du fichier .\work\project0.accdb.old créé par l'export est contrôlée

python assert_exists.py .\work\project0.accdb.old

Contrôle des résultats

  • Exporter les sources de .\results\result1.accdb

.\results\result1.accdb /X test_export

  • Renommer .\results\source en .\results\source2

move .\results\source .\results\source2

  • Controle des résultats

python compare.py .\results\source2 .\reference\source

  • Exporter les sources de .\results\result2.accdb

.\results\result2.accdb /X test_export

  • Renommer .\results\source en .\results\source3

move .\results\source .\results\source3

  • Controle des résultats

python compare.py .\results\source3 .\reference\source

Interpréter les résultats

La build sera réussie si:

  • Elle se déroule jusqu'au bout sans erreur
  • La fonction compare.py retourne un code exit 0 à chaque fois qu'elle est appellée

De plus, on peut vérifier les résultats dans le répertoire .\results:

  • initial.accdb contient le projet de départ
  • source1 contient le résultat de l'export des sources de project0.accdb
  • result1.accdb contient le résultat d'u import de ces sources dans une base vide
  • result2.accdb contient le résultat de l'improt des sources dans project0.accdb

Commande batch

Voir http://codebox/dev/OpenAccess/blob/master/tests/run_tests.bat