-
Notifications
You must be signed in to change notification settings - Fork 1
Backlog
Piste : Utiliser la propriété Saved de VBComponent, et identifier les modules à exporter dans la méthode WorkBook_BeforeSave du fichier Excel contenant le projet.
Pas de Git Commit.
Demander pour les modules du projet qui ne serait pas déclarés dans vtkConfiguration ? Si oui il faut les déclarer à la volée, ou bien une fonction séparée pour les ajouter avant, et dans l'export il n'y a qu'un avertissement.
Tâches à réaliser
- décider comment traiter les modules présents mais non listés dans la configuration. Fait : on ne les exporte pas et on ne demande pas.
- faire une fonction pour exporter une configuration (utiliser ExportModulesFromAnotherProject) avec un paramètre optionnel onlyModified (vrai par défaut ?), ou bien ajouter ce paramètre à la fonction existante. Bien tester le comportement (pas de module modifié, un ou plusieurs modules modifiés). Il faudra sans doute créer un nouveau template Excel, ou modifier celui existant mais dans ce cas il faudra modifier des tests existant car la feuille vtkConfiguration ne correspondant pas au contenu réel du fichier Fait
- Faire un test qui importe un nouveau module (est-il considéré comme sauvegardé ?) Fait
- Ajouter un handler d'événement BeforeSave dans la version de test de ThisWorkBook, celle de VBAToolKit_DEV. Ce handler doit appeler la fonction précédente. Fait
- Ajouter des tests de fonctionnement du handler en provoquant une sauvegarde du fichier Excel de Test Fait
- Lors de la création d'un projet, insérer un handler dans le ThisWorkBook du nouveau projet (le plus simple est d'ajouter les lignes de code "à la main"). Ce handler devra appeler la fonction d'export en précisant le nom du projet VBAToolKit Fait
- Regénérer l'AddIn et vérifier que les tests de VBAToolKit_DEV continuent à fonctionner Fait
- Tester l'AddIn à partir d'un Excel propre ; vérifier qu'un nouveau module et un module modifiés sont automatiquement exportésà la sauvegarde du fichier Excel (test manuel) Fait
- Documenter ce comportement dans la partie utilisateur du Wiki (qu'est ce que ça fait) Fait
- Documenter ce comportement dans la partie technique du Wiki (comment ça marche) Fait
VBAToolKit.testPath, VBAToolKit.getTestFileFromTemplate, VBAToolKit.getTestFolderFromTemplate, VBAToolKit.resetTestFolder
Travail entamé. Ne pas oublier de mettre le wiki à jour.
Des noms de variables sont écrits différemment par différentes versions d'Excel/VBIDE. Il faut normaliser les exports afin de ne pas polluer les commits par des modifications qui n'en sont pas.
L'idée est de vérifier les noms juste après un export : le fichier exporté est lu, transformé, réécrit puis renommé. La liste des noms souvent en erreur sevra être stockée quelque part (en dur dans le code pour l'instant), s'agissant toujours d'erreurs de casse, il suffit de stocker les noms avec la casse correcte. La recherche sera donc insensible à la casse. Exemple de variables à traiter Err, wb.
La [grammaire de VB](http://msdn.microsoft.com/fr-fr/library/aa711636(v=vs.71\).aspx) est disponible sur le site de Microsoft.
Un autre post-traitement possible est l'insertion de la ligne de spécification d'un défaut, par exemple juste après un commentaire prédéfini 'VTK_DEFAULT_PROPERTY
-
Méthode sans analyseur syntaxique, algorithme simple mais lourd (NB : même les commentaires sont normalisés)
-
Ecrire une fonction qui génère un array de String à partir d'un mot un d'un tableau de séparateurs. Ces String doivent représenter le token à filtrer. Typiquement, le mot entre une tabulation et un espace, le mot entre 2 espaces, le mot entre une tabulation et un point, un espace et un point, parenthèses, virgules, etc.
-
idée : faire un tableau qui liste les séparateurs, générer toutes les combinaisons possibles séparateur mot séparateur à partir de ce tableau
-
Tests
- avec un array de paramètres court, tester la valeur des valeurs de l'array de retour.
- valeurs limites (array de séparateurs vide, string vide, etc)
-
-
Ecrire une fonction qui cherche chaque String de cet Array dans une autre String (de manière case-insensitive), et qui remplace chaque occurrence par la version en bonne casse.
-
Tests
- Appliquer la fonction sur des string courtes dont on peut expliciter l'état final attendu. Plusieurs cas :
- mots séparés par des espaces, des points, des retours à la ligne, des tabulations, des parenthèses, etc.)
- Appliquer la fonction sur des string courtes dont on peut expliciter l'état final attendu. Plusieurs cas :
-
-
Ecrire la fonction précédente avec comme paramètre un fichier
- On se sert de la fonction vtkTextFileReader pour passer le fichier en String, et on traite la String comme on sait le faire.
- Tests
- Un seul test : faire un fichier avec les Strings de la fonction d'avant, et un autre avec les résultats qu'on attend. Comparer les 2 fichiers, où les Strings du contenu de ces 2 fichiers.
-
Hardcoder les listes de variables et de séparateurs de VBAToolKit quelque part (probablement dans le module où on a écrit les fonctions)
-
Décider si on intègre la fonction de normalisation directement dans "exportConfiguration" ou si on normalise tous les fichiers dans un second temps.
- Si on fait dans ExportConfiguration, il faut vérifier que les deux fonctions sont bien interfacées (test : mettre une ligne avec une variable mal écrite dans un module, exporter la configuration, vérifier que ce module a bien été modifié)
- Si on fait dans une fonctions séparée (normalizeConfiguration), on test les fichiers des modules après la normalisation.
-
- il faudrait compléter la configuration pour pouvoir se passer de gérer les Excels sous Git (Title, Comment, ReferencesGUID, ...)
- Il faudra ajouter un paramètre par module pour définir la méthode par défaut éventuellement (pour ajouter l'attribut à l'export ou à l'import)
- Ce serait une version 2.0 de vtkConfiguration, il faudra tester la compatibilité ascendante (garder des templates de tests dans les deux versions) - inutile en fait mais permettra de mettre au point le procédé de compatibilité ascendante
- Cette configuration pourrait contenir aussi un nom de template de fichier (sans macros, ni formulaires) à partir desquels regénérer les versions DEV et Delivery, pour les projets qui ont besoin de feuilles Excel particulières
Lancer seulement les tests d'une liste de classes Tester. Peut remplacer l'item précédent (possibilité d'une liste ne contenant qu'un seul module) ou être en plus.
Fait en partie, pour la version Delivery de VBAToolKit. À terminer car ne recrée correctement que la version Delivery, et à tester complètement.
Utiliser des fichiers Excel template s'ils sont disponibles (ou bien configuration) -> dans Template reproduire l'arborescence Project - Delivery - Test
L'objectif est d'aider à convertir un projet, ou un simple fichier Excel, en un projet VBAToolKit. Cette fonctionnalité pourra être décomposée :
- convertir un fichier Excel simple
- récupérer dans le projet des fichiers d'accompagnement (Delivery ou Template)
- récupérer un projet composé de plusieurs fichiers Excel. Ce qui produira vraisemblablement un fichier DEV et plusieurs fichiers Delivery (plusieurs configurations VBAToolkit). Il faudra prévoir un outil qui permette de détecter les composants communs à plusieurs configurations, et d'indiquer les différences entre les différentes implémentations d'un composant commun (déjà de savoir s'il y a des différences).
Type (Module, classe, formulaire), Nom
Les mêmes références que dans le fichier de projet
Dans une Lib vtkLib et/ou vtkTestLib qui serait intégrée au projet à sa création.