J'ai un « avant » crochet que je veux courir avant tous les tests (fichiers), la situation idéale serait courir une fois et une seule fois, peu importe le nombre de cas de test et qui cas d'essai je cours.avant crochet avant tous les cas de test dans Mocha
Maintenant, ce que je ne mettais que est « avant » crochet dans un fichier séparé, et faire « require (» beforeAll.js ../ «) » au début de chaque fichier de test,
//beforeAll.js
before('description', function(done) {
//do something
done()
}
//all test files
require('../beforeAll.js')
//test
//......
Je pense que le hook "avant" sera exécuté chaque fois qu'un fichier de test sera exécuté, mais je ne connais pas de meilleure façon de le faire. Cependant, lorsque je lance tous les cas de test, le hook "avant" ne s'exécute qu'une seule fois.
Donc, ma question est, pourquoi le crochet "avant" ne fonctionne qu'une seule fois? Quelle est la meilleure façon de le faire dans ce scénario (seulement exécuter une fois)?
Merci, donc si je veux l'exécuter avant chaque fichier de test, je devrais faire le fichier requis avantEach? Y a-t-il une meilleure façon de le faire au lieu de mettre require dans chaque fichier? – Keming
Oui, si vous vouliez le faire avant chaque test, vous feriez un 'beforeEach()' dans le fichier requis. ** Personnellement ** si j'utilisais un 'beforeEach()' au lieu d'un 'before()', je l'aurais dans chacun des fichiers de test. Cela conduit à dupliquer le code, mais il souligne que le 'beforeEach()' est unique à cet ensemble de tests. De toute façon fonctionne bien, et le choix de l'endroit où vous stockez le code est à vous. Rappelez-vous simplement que 'require()' ressemble beaucoup à un PHP 'include()'; Il suffit simplement de copier le contenu du fichier A dans le fichier B :) –
Oh, je pense que beforeEach() s'exécutera avant chaque test CAS, mais pas avant chaque test FILE, alors y a-t-il un moyen de faire avant chaque fichier? – Keming