|
|
@@ -1,23 +1,179 @@
|
|
|
-## TESTS OPENACCESS
|
|
|
+# 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
|
|
|
|
|
|
-#### Export / Import complets
|
|
|
+#### 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`
|
|
|
+
|
|
|
+> `copy .\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`)
|
|
|
+
|
|
|
+> `"C:\Program Files\Microsoft Office\Office14\MSACCESS.EXE" "C:\APPLIS_PARC\OpenAccess\tests\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
|
|
|
+*à revoir*
|
|
|
+
|
|
|
+> vider .\work, et exporter successivement les sources de result1 et result2 pour comparer le résultat à 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
|
|
|
+
|
|
|
+ @echo off
|
|
|
+
|
|
|
+ echo clean the directories
|
|
|
+ del /f /s /q .\work
|
|
|
+ del /f /s /q .\results
|
|
|
+
|
|
|
+ echo prepare files
|
|
|
+ unzip .\initial\project0.zip -d .\work
|
|
|
+ unzip .\initial\db.zip -d .\work
|
|
|
+ unzip .\initial\empty_project.zip -d .\work
|
|
|
+
|
|
|
+ echo ** tests: step 1 **
|
|
|
+
|
|
|
+ echo run the test_export macro
|
|
|
+ "C:\Program Files\Microsoft Office\Office14\MSACCESS.EXE" "C:\APPLIS_PARC\OpenAccess\tests\work\project0.accdb" /X test_export
|
|
|
+
|
|
|
+ echo control existence of zipped app
|
|
|
+ python assert_exists.py .\work\project0.zip
|
|
|
+
|
|
|
+ echo clean sources
|
|
|
+ del .\work\source\modules\test_methods.bas
|
|
|
+ del .\work\source\macros\test_export.bas
|
|
|
+ del .\work\source\macros\test_import.bas
|
|
|
+
|
|
|
+ echo copy source to results
|
|
|
+ copy .\works\source .\results\source1
|
|
|
+
|
|
|
+ echo control the result
|
|
|
+ python compare.py .\results\source1 .\reference\source
|
|
|
+
|
|
|
+ echo ** tests: step 2 **
|
|
|
|
|
|
-Le fichier Access `projet0.accdb` (copie de `projet0_modele.accdb`) est l'application de départ des tests.
|
|
|
-C'est ce fichier qu'il faut modifier pour tenir compte des évolutions d'Openaccess et des nouveaux problèmes rencontrés.
|
|
|
+ echo run import in empty_project.accdb
|
|
|
+ "C:\Program Files\Microsoft Office\Office14\MSACCESS.EXE" "C:\APPLIS_PARC\OpenAccess\tests\work\empty_project.accdb" /X test_import
|
|
|
|
|
|
-La macro `export` execute l'export des sources de `projet0.accdb`
|
|
|
+ echo copy to results
|
|
|
+ copy .\work\empty_project.accdb .\results\result1.accdb
|
|
|
|
|
|
-On contrôle le contenu des sources ainsi créées en comparant chaque fichier du répertoire `sources` aux fichiers du répertoire `ctrl_source0`
|
|
|
+ echo control existence of backup
|
|
|
+ python assert_exists.py .\work\empty_project.accdb.old
|
|
|
|
|
|
-Le fichier `projet1.accdb` (copie de `projet1_modele.accdb`) est un projet vierge, qui ne contient que la macro `import`
|
|
|
+ echo run import in project0.accdb
|
|
|
+ "C:\Program Files\Microsoft Office\Office14\MSACCESS.EXE" "C:\APPLIS_PARC\OpenAccess\tests\work\project0.accdb" /X test_import
|
|
|
|
|
|
-La macro `import` execute l'import des sources depuis `.\sources`
|
|
|
+ echo copy to results
|
|
|
+ copy .\work\project0.accdb .\results\result2.accdb
|
|
|
|
|
|
-La macro `compare1to0` compare le contenu de `projet1.accdb` à celui de `projet0.accdb`.
|
|
|
+ echo control existence of backup
|
|
|
+ python assert_exists.py .\work\project0.accdb.old
|
|
|
|
|
|
-#### Export / Import différentiels
|
|
|
+ echo ** end **
|
|
|
|
|
|
+ pause
|
|
|
|
|
|
|