-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
tests(JS): Mise en place tests unitaires et couverture pour code JS/TS #43
Conversation
@@ -1,6 +1,8 @@ | |||
.* | |||
!.github | |||
!.gitignore | |||
!dbmongo/js/.nvmrc |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ce fichier contient le numéro de version de Node.js nécessaire pour que les nouveaux tests puissent s'exécuter.
Depuis le répertoire dbmongo/js
, il suffit de taper nvm use
pour utiliser cette version. (voir nvm-sh/nvm: Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions)
@@ -1,6 +1,8 @@ | |||
.* | |||
!.github | |||
!.gitignore | |||
!dbmongo/js/.nvmrc | |||
!dbmongo/js/.nycrc |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ce fichier contient la configuration de Istanbul/nyc, l'outil qui permet de générer un rapport de couverture (coverage) lors de l'exécution des tests JavaScript/TypeScript.
"test": "test" | ||
}, | ||
"scripts": { | ||
"test": "ava-ts **/*_tests.ts", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pour exécuter ces tests, il suffit de taper npm test
depuis dbmongo/js
.
@@ -260,3 +260,7 @@ function map () { | |||
} | |||
} | |||
} | |||
|
|||
try { | |||
module.exports.map = map |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Cette ligne est nécessaire pour que la fonction soit visible après son importation dans un test exprimé en TypeScript, mais elle est incompatible avec jsc
.
=> Solution choisie: essayer d'exporter la fonction pour TypeScript, et faire retirer ce bloc par jsLoad
lors du bundling. (cf https://github.com/signaux-faibles/opensignauxfaibles/pull/43/files#diff-a688410c05f14479ef1f74e809527503R53)
Pour info, avant de décider d'utiliser Node et Ava-ts, j'avais considéré deux autres solutions. Voici mes notes d'évaluation de ces solutions: Solutions pour refactorer et tester fichiers JS/TSDenoLiens
PROs
CONs
Questions ouvertes (TODO)
RomeLiensPROs
CONs
Jest ?Ma confiance en Jest est relative, pour les raisons suivantes:
|
Pierre et moi allons ajouter des tests unitaires aux fonctions JavaScript employées par le map-reduce exécuté sur MongoDB, et nous voulons mesurer l'évolution de la couverture du code par ces tests.
À cette fin, je propose dans cette PR:
Pour tester ces nouvelles fonctions:
...et, quand cette PR sera fusionnée dans
master
, nous pourrons suivre l'évolution de la couverture des tests depuis cette page: https://app.codacy.com/gh/signaux-faibles/opensignauxfaibles/dashboard