Exécutez Mocha par programme et transmettez les résultats à variable ou à fonction
J'ai configuré une suite de tests à moka en utilisant ZombieJS et Chai. Les tests de charge d'un site web et de vérifier si les différents services sont comptabilisées correctement et afficher aux visiteurs du site.
Ce que je vise, c'est que les tests sont exécutés quotidiennement et puis l'envoyer par courriel les résultats de mon équipe. Les tests sont tous en cours d'exécution comme prévu, mais le blocage que j'ai trouvé est la suivante.
Comment puis-je passer le JSON journaliste de résultats à l'autre node.js script où je peux e-mail les résultats. La construction de l'e-mail et l'envoi, ça va être tout droit vers l'avant à l'aide de nodemailer et de souligner la création de modèles.
Actuel de ma pensée est qu'il y a deux approches. Exécutez le moka le test avec un script shell et le tuyau de la sortie JSON à un nœud de script et le processus de JSON à partir d'un argument de ligne de commande. Quelque chose comme...
mocha test/services/homepage.js > node email.js
L'autre alternative est d'exécuter les tests à partir de l'intérieur d'un nœud de script et obtenir le résultat dans une variable. J'ai été en utilisant les informations de ici pour lancer les tests à l'intérieur du nœud.
https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically
Cela fonctionne correctement, mais je suis perdu avec comment obtenir le JSON reporter les résultats dans une variable dans le code ci-dessous.
var Mocha = require('mocha'),
Suite = Mocha.Suite,
Runner = Mocha.Runner,
Test = Mocha.Test;
//First, you need to instantiate a Mocha instance
var mocha = new Mocha({
reporter: 'json'
});
var suite = new Suite('JSON suite', 'root');
var runner = new Runner(suite);
var mochaReporter = new mocha._reporter(runner);
mocha.addFile(
'/Users/dominic/Git/testing-rig/test/services/homepage.js'
);
runner.run(function(failures) {
//the json reporter gets a testResults JSON object on end
var testResults = mochaReporter.testResults;
console.log(testResults);
//send your email here
});
Si quelqu'un a quelques conseils sur la meilleure façon d'aborder cette question ou si je vais dans la direction complètement fausse sur ce, je vous remercie de toutes les suggestions.
source d'informationauteur dlearious | 2015-03-14
Vous devez vous connecter pour publier un commentaire.
Vous pouvez écouter le coureur des événements comme dans https://github.com/mochajs/mocha/blob/master/lib/runner.js#L40 et de construire votre propre rapport.
Hmm, normalement, les gens serait d'utiliser un CI bot pour atteindre ce que vous essayez de faire. Cependant, concernant votre question directe au sujet d'obtenir le résultat de JSON journaliste, je ne sais pas si il y a une meilleure manière de la réaliser, mais voici ce que je ferais après la lecture de la moka source. Vous aurez à créer la Suite, le Coureur et obtenir le journaliste vous-même (copie de https://github.com/mochajs/mocha/blob/master/test%2Freporters%2Fjson.js):
Je suggérerais à l'aide d'un moka journaliste comme expliqué ici
https://github.com/mochajs/mocha/wiki/Third-party-reporters
invoquer moka comme ce
et la
MyReporter.js
fichier ressemblera à ceci