Il n'est actuellement pas possible de spécifier un fichier de "sortie" comme argument CLI pour l'enregistrement des rapports. Le formateur JSON semble écrire directement sur STDOUT, ce qui peut être un problème lors du débogage (à l'aide de console.log) ou si le programme échoue, produisant un JSON invalide.
Il serait souhaitable que cela fonctionne comme le concombre dans Ruby, permettant à plusieurs formats d'être enregistrés dans des fichiers de sortie séparés.
Il y a en fait deux problèmes distincts ici :
J'ai créé un problème séparé concernant les multiples formateurs.
Julien, y a-t-il des nouvelles du moment où nous serions en mesure de spécifier un fichier de sortie HTML ?
+1
+1
Salut, j'ai copié et collé manuellement le contenu des résultats JSON dans le fichier cucumber.json dans le répertoire de données de cucumber-json2report-master, ce qui me permet d'obtenir de bons résultats de l'exécution, mais ce serait génial si cucumber.js pourrait placer le fichier dans ce répertoire, éliminant ainsi l'étape manuelle.
Je ne veux pas vraiment pirater la version ou créer un fork. Suggestions?
Une mise à jour pour ceci?
@letshaveyer, cela vous semble une fonctionnalité utile. Pourquoi n'envoyez-vous pas de demande de tirage ?
Jusqu'à ce que cela fonctionne, vous pouvez modifier json_formatter.js. C'est hack mais beaucoup plus facile que de copier un coller à chaque fois. Nous ajoutons également un horodatage au nom de fichier.
Modifiez l'objet formatterIo pour qu'il écrive également dans un fichier
var formatterIo = {
écrire : fonction(chaîne){
self.log(chaîne);
fs.writeFileSync('chemin\test_results.json', chaîne); // ajoutée
}
} ;
C'est une chose simple à faire avec de simples redirections de tuyaux dans unix et bash
cucumber-js --format=json | tee wow.json
+1 pour fermer
Nous ne pouvons pas le canaliser. Nous utilisons le fichier de configuration du rapporteur pour définir cucumberjs
options
Opt concombre : {
Format : 'JSON',
Mots clés : ' @testRun '
}
Nous avons un fichier bat qui utilise un nœud pour démarrer le rapporteur.
Brad
Le 5 août 2014 à 9 h 54, "Sam Saccone" [email protected] a écrit :
C'est une chose simple à faire avec de simples redirections de tuyaux sous unix
concombre-js --format=json | tee wow.json
+1 pour fermer
-
Répondez directement à cet e-mail ou consultez-le sur GitHub
https://github.com/cucumber/cucumber-js/issues/90#issuecomment -51199997.
Intéressant @ brad8118, cela semble être une caractéristique du rapporteur et non du concombre.
le rapporteur invoque le concombre et ce qu'il fait avec la sortie relève de la responsabilité du rapporteur et non du concombre.
Ce ne sont que mes premières réflexions, ouvertes aux idées. J'essaie juste d'empêcher le glissement des fonctionnalités de la bibliothèque de concombre.
@ brad8118 J'utilise un rapporteur. Je ne veux pas vraiment brouiller le code source. Existe-t-il un moyen d'ajouter un hook ou un fichier de support pour le faire?
var formatterIo = {
write: function(string){
self.log(string);
fs.writeFileSync('path\test_results.json', string); // added
}
};
Le rapporteur
@ jlin412 , je ne sais pas comment passer/obtenir le json qui est généré sans changer cucumber.js.
J'ai également pensé à la fonction de nettoyage dans notre fichier de configuration json rapporteur. Mais il ne passe que 1 ou 0.
// ----- The cleanup step -----
//
// A callback function called once the tests have finished running and
// the webdriver instance has been shut down. It is passed the exit code
// (0 if the tests passed or 1 if not).
onCleanUp: function () {}
On dirait que cela est déjà fait dans une autre fourchette. nicolassenechal@b337b18
@ jlin412 quand vous mignon et collez le json. Qu'est-ce que tu fais avec ? Est-ce que tu le convertis en html ?
@ brad8118 J'utilise la redirection pour envoyer la sortie json vers un fichier à partir du rapporteur, puis j'ai la fonction de tâche de grognement pour filtrer le format json à l'aide de la correspondance regex :
grunt.registerTask('jsonOutput', function () {
var testOutput = grunt.file.read('test/e2e/tmp/cucumberOutput.json');
var json = testOutput.match(/(\[\s+\{[\s\S]*\}\s+\]\s+\}\s+\]\s+\}\s+\])/)[1];
grunt.file.write('test/e2e/output/cucumberReport.json', json);
});
Ensuite, j'utilise un sandwich au concombre pour convertir en html (un projet java).
http://www.farooqyousuf.net/2013/12/generating-reports-with-cucumber-sandwich/
J'ai apporté une légère modification à la base de code du sandwich au concombre afin que je puisse l'appeler à la demande plutôt que de dépendre de l'écouteur d'événement de fichier.
Salut les gars, j'essaie juste de comprendre quand cela sera remis au maître concombre-js? J'ai besoin de cette fonctionnalité maintenant, mais je me méfie de compter sur une branche fourchue. Pourriez-vous me donner une idée de quand il sera disponible dans cucumber-js master et juste une idée rapide de s'il est sage de s'appuyer sur l'une des branches fourchues en attendant ? Merci, Fraser.
+1 -- Je sais que je ne suis pas le seul à subir des contorsions folles pour utiliser du concombre avec un rapporteur alors qu'un indicateur pour écrire dans un fichier serait tellement utile. Je ne comprends pas pourquoi l'écriture dans un fichier est considérée comme un glissement de fonctionnalité. Le concombre est-il uniquement destiné à permettre aux développeurs d'inspecter visuellement la qualité de leur travail ? Ne sommes-nous pas censés utiliser le concombre dans le cadre d'un environnement de test plus large ? Cela ne peut pas être ainsi...
Salut,
N'importe qui peut m'aider, je n'ai pas trouvé comment configurer correctement la sortie json dans un fichier.
J'utilise gulp+rapporteur+concombrejs
Merci d'avance
@cedriclombardot
Il existe un moyen de sélectionner un répertoire vers la sortie json du rapporteur à partir de la version 1.5.0, bien que je ne l'aie pas utilisé.
Actuellement, j'ai ajouté un crochet pour pouvoir utiliser les formateurs pretty et json ensemble :
module.exports = function JsonOutputHook() {
var Cucumber = require('cucumber');
var JsonFormatter = Cucumber.Listener.JsonFormatter();
var fs = require('fs');
JsonFormatter.log = function (json) {
fs.writeFile('test/e2e/output/cucumberReport.json', json, function (err) {
if (err) throw err;
console.log('json file location: test/e2e/output/cucumberReport.json');
});
};
this.registerListener(JsonFormatter);
};
Je n'ai pas vu que le resultJsonOutputFile
semble fonctionner comme par magie et prêt
aller en xml avec : https://www.npmjs.com/package/protractor-cucumber-junit
Cédric
02/01/2015 18:34 GMT":" Jason Lin [email protected] :
@cedriclombardot https://github.com/cedriclombardot
Il existe un moyen de sélectionner un répertoire vers la sortie json du rapporteur à partir de
1.5.0 bien que je ne l'aie pas utilisé.
Actuellement, j'ai ajouté un crochet pour pouvoir utiliser les formateurs pretty et json ensemble :module.exports = fonction JsonOutputHook() {
var Concombre = require('concombre');
var JsonFormatter = Cucumber.Listener.JsonFormatter();
var fs = require('fs');JsonFormatter.log = fonction (json) {
fs.writeFile('test/e2e/output/cucumberReport.json', json, fonction (err) {
si (err) jeter err ;
console.log('emplacement du fichier json : test/e2e/output/cucumberReport.json');
});
} ;this.registerListener(JsonFormatter);
} ;-
Répondez directement à cet e-mail ou consultez-le sur GitHub
https://github.com/cucumber/cucumber-js/issues/90#issuecomment-68544890 .
+1
Pourrions-nous s'il vous plaît obtenir une mise à jour sur le moment où cela sera engagé dans le master ? J'utilise actuellement cucumberjs moins rapporteur (ou tout autre framework de test Web de style sélénium), j'ai donc besoin de cucumberjs pour produire un rapport formaté.
Une mise à jour pour ceci? Cela nous a causé suffisamment de problèmes pour penser à patcher ce module ou à examiner le concombre parallèle (qui gère ce cas).
concombrejs -> webdriverio
+1
Je suis cette description pour enregistrer le format json cucumberjs.
https://github.com/mrooding/gulp-protractor-cucumber-html-report#saving -cucumberjs-json-to-disk-when-using-protractor
C'est du travail
si quelqu'un manque l'happy hour à cause des rapports js sur le concombre, nous utilisons les rapports concombre-html
support.registerHandler('AfterFeatures', () => {
///* creates report
var options = {
theme: 'bootstrap',
jsonFile: 'cucumberReports/report.json',
output: 'cucumberReports/report.html',
reportSuiteAsScenarios: true,
launchReport: true,
metadata: {
"App Version":"0.3.2",
"Test Environment": "POC",
//"Browser": "Chrome 54.0.2840.98",
//"Platform": "Windows 10",
//"Parallel": "Scenarios",
//"Executed": "Remote"
}
};
reporter.generate(options);
});
mettre à jour votre protractor.conf.cucumberOpts
format: 'json:cucumberReports/report.json',
Ce fil a été automatiquement verrouillé car il n'y a eu aucune activité récente après sa fermeture. Veuillez ouvrir un nouveau problème pour les bogues liés.
Commentaire le plus utile
@cedriclombardot
Il existe un moyen de sélectionner un répertoire vers la sortie json du rapporteur à partir de la version 1.5.0, bien que je ne l'aie pas utilisé.
Actuellement, j'ai ajouté un crochet pour pouvoir utiliser les formateurs pretty et json ensemble :