des tests plus rapides avec jasmine


Jasmine, framework de test en javascipt dispose de quatre fonctions intéressantes pour rendre l’exécution de vos nommmmmmbreux tests JS. Parce que bien sûr, vous testez votre javascript, nesspa?

Bien, donc,
on développe des blocs de test avec describe() et it()

vous pouvez demander à jasmine de ne pas exécuter de bloc en utilisant xdescribe() et xit().
et vous pouvez lui demander de n’exécuter que certains blocs et assertions avec fdescribe() et fit()

ce qui devrait faire tourner le tout plus vite, notamment si vous avez dans les 500 assertions et que vous bossez seulement sur une certaine partie.

une astuce pour ensuite ne pas faire de push avec ces blocs spéciaux, c’est de se créer un hook sur git.
parce que vous utilisez git, nesspa?
Bien, donc, avec un terminal ouvert dans votre projet, dans le dossier .git.

touch .git/hooks/pre-commit
chmod +x .git/hooks/pre-commit

et mettez y de quoi vérifier que vous n’avez pas de fdescribe( , de fit( dans vos fichiers de tests.

#!/bin/sh
# A git pre-commit hook that verifies that the change does not introduce
# the use of a Jasmine exclusive test , which would
# prevent most other tests from being run without any clear indication thereof

 FILES_PATTERN='\.(js|coffee)(\..+)?$'
FORBIDDEN='fit('
git diff --cached --name-only | \
    grep -E $FILES_PATTERN | \
    GREP_COLOR='4;5;37;41' xargs grep --color --with-filename -n $FORBIDDEN && echo 'COMMIT REJECTED Found "$FORBIDDEN" references. Please remove them before commiting' && exit 1

Si vous aimez ce que nous faisons à Cipher Bliss, vous pouvez nous soutenir de plusieurs façons: en faisant un micro don sur liberapay , ou en cryptomonnaies. Le plus simple nous pour nous faire connaître étant de partager cet article.
Suivez moi sur Mastodon @tykayn@mastodon.cipherbliss.com.
Ce site restera libre comme un gnou dans la nature et sans pubs, parce qu'on vous aime. Que la source soit avec vous!

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.