Protractor: Journaliste Junit

Créé le 28 août 2013  ·  42Commentaires  ·  Source: angular/protractor

Nous voulons exécuter des tests de rapporteur sur Jenkins, il serait donc très utile s'il y avait un journaliste junit (comme le karma) afin que le statut des tests puisse être signalé par Jenkins

feature request

Commentaire le plus utile

Comment faire cela dans votre fichier de configuration d'une manière légèrement hacky - j'ai testé cela avec la propre suite de tests de Protractor :

npm install jasmine-reporters

Votre fichier de configuration :

require('jasmine-reporters');

jasmine.getEnv().addReporter(new jasmine.JUnitXmlReporter(
    'outputdir/', true, true));

// The main suite of Protractor tests.
exports.config = {
  seleniumServerJar: './selenium/selenium-server-standalone-2.35.0.jar',
  chromeDriver: './selenium/chromedriver',

  seleniumAddress: 'http://localhost:4444/wd/hub',

  // Spec patterns are relative to this directory.
  specs: [
    '*_spec.js'
  ],

  capabilities: {
    'browserName': 'chrome'
  },

  baseUrl: 'http://localhost:8000',
};

Tous les 42 commentaires

Mes 2 cents ici : si vous utilisez Grunt comme outil de construction, vous pouvez exécuter vos tests Protractor en utilisant grunt-jasmine-node et le configurer pour obtenir des rapports de type JUnit !

Comment faire cela dans votre fichier de configuration d'une manière légèrement hacky - j'ai testé cela avec la propre suite de tests de Protractor :

npm install jasmine-reporters

Votre fichier de configuration :

require('jasmine-reporters');

jasmine.getEnv().addReporter(new jasmine.JUnitXmlReporter(
    'outputdir/', true, true));

// The main suite of Protractor tests.
exports.config = {
  seleniumServerJar: './selenium/selenium-server-standalone-2.35.0.jar',
  chromeDriver: './selenium/chromedriver',

  seleniumAddress: 'http://localhost:4444/wd/hub',

  // Spec patterns are relative to this directory.
  specs: [
    '*_spec.js'
  ],

  capabilities: {
    'browserName': 'chrome'
  },

  baseUrl: 'http://localhost:8000',
};

D'autres exemples sont maintenant affichés dans https://github.com/angular/protractor/blob/master/spec/junitOutputConf.js

Accepte-t-il le chemin relatif ou absolu du répertoire. Le chemin absolu fonctionne alors que le chemin relatif ne fonctionne pas. J'ai essayé des options comme ../Reports mais ça ne sert à rien
jasmin.getEnv().addReporter(
nouveau jasmine.JUnitXmlReporter('xmloutput', vrai, vrai));
},

exploré et travaillé, ignorez mon dernier commentaire

Je n'étais pas assez intelligent donc je m'attendais à ce que le dossier soit créé mais en fait, le dossier doit être créé au préalable.

@juliemr Comment l'utiliser avec deux instances de Protractor fonctionnant en parallèle, par exemple via grunt-concurrent ? C'est nécessaire pour que nous puissions exécuter des tests dans Firefox et Chrome en même temps, mais cela fera qu'un XML remplacera l'autre, ce qui confondra Jenkins.

Peut-être que Protractor devrait savoir fonctionner en parallèle pour des raisons comme celle-là, de la même manière que Karma?

@mzgol Avez-vous essayé de faire en sorte que chaque cible s'exécutant en tant que tâche simultanée produise un rapport junit xml différent basé sur la plate-forme? Vous pouvez simplement créer un nouveau dossier de sortie basé sur le nom de la cible.

Vous pouvez également envisager des cibles multi-configuration sur Jenkins qui vous permettent d'exécuter vos étapes de construction en parallèle chacune avec un environnement propre. Il possède également des fonctionnalités astucieuses telles que les versions de pierre de touche et vous permet de mieux limiter la simultanéité que de grogner.

Existe-t-il une configuration similaire pour le moka ? (comme je n'utilise pas Jasmine)

@mzgol J'ai essayé la suggestion de jvandyke (merci) et ça marche bien pour moi :

onPrepare: function(){
        require('jasmine-reporters');
        var capsPromise = browser.getCapabilities();
        capsPromise.then(function(caps){
            var browserName = caps.caps_.browserName.toUpperCase();
            var browserVersion = caps.caps_.version;
            var prePendStr = browserName + "-" + browserVersion + "-";
            jasmine.getEnv().addReporter(new
jasmine.JUnitXmlReporter("protractor_output", true, true,prePendStr));
        });
 },

Merci. Moi aussi ça marche :

onPrepare : fonction(){
require('jasmine-reporters');
var capsPromise = navigateur.getCapabilities();
capsPromise.then(fonction(caps){
var nom_navigateur = caps.caps_.nom_navigateur.toUpperCase();
var navigateurVersion = caps.caps_.version ;
var prePendStr = nomNavigateur + "-" + VersionNavigateur + "-" ;
jasmine.getEnv().addReporter(nouveau
jasmine.JUnitXmlReporter("protractor_output", true, true,prePendStr));
});
},

J'ai créé un reporter html en plus de cela. Veuillez me faire part de vos commentaires
https://github.com/jintoppy/protractor-html-screenshot-reporter

Ce serait peut-être une idée d'ajouter la création de dossier aux docs car j'ai trébuché là-dessus aussi @tracycummins !

@juliemr Fatigué de toutes les options répertoriées dans les échantillons. J'obtiens cette erreur. Tous les pointeurs appréciés

/home/jack/prototype/conf.js:19
jasmine.getEnv().addReporter(new jasmine.JUnitXmlReporter('xmloutput', true, true));
^
TypeError : undefined n'est pas une fonction
à exports.config.onPrepare (/home/jack/prototype/conf.js:19:33)
sur Runner.runFilenamesOrFns_ (/home/usr/lib/node_modules/protractor/lib/runner.js:64:9)
sur Runner.runTestPreparers (/home/usr/lib/node_modules/protractor/lib/runner.js:91:8)
sur runner.controlFlow.execute.then.jasmineNodeOpts (/home/usr/lib/node_modules/protractor/lib/frameworks/jasmine.js:39:12)
sur webdriver.promise.ControlFlow.runInNewFrame_ (/home/usr/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:1539:20)
sur webdriver.promise.ControlFlow.runEventLoop_ (/home/usr/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:1404:8)
au wrapper comme _onTimeout
à Timer.listOnTimeout comme ontimeout
==== tâche asynchrone ====
exécuter les préparateurs de test
sur Object.exports.run (/home/usr/lib/node_modules/protractor/lib/frameworks/jasmine.js:38:24)
à driverprovider_.setupEnv.then.then.then.testResult (/home/usr/lib/node_modules/protractor/lib/runner.js:233:28)
à _fulfilled (/home/usr/lib/node_modules/protractor/node_modules/q/q.js:797:54)
à self.promiseDispatch.done (/home/usr/lib/node_modules/protractor/node_modules/q/q.js:826:30)
sur Promise.promise.promiseDispatch (/home/usr/lib/node_modules/protractor/node_modules/q/q.js:759:13)
à /home/usr/lib/node_modules/protractor/node_modules/q/q.js:525:49
au flush (/home/usr/lib/node_modules/protractor/node_modules/q/q.js:108:17)
au processus._tickCallback (node.js:423:13)
à Function.Module.runMain (module.js:499:11)


// Un exemple de fichier de configuration.
exportations.config = {
// L'adresse d'un serveur Selenium en cours d'exécution.
adresse sélénium : ' http://localhost :4444/wd/hub',
allScriptsTimeout : 30 000,
// Capacités à transmettre à l'instance webdriver.
capacités : {
'nom du navigateur' : 'firefox'
},

// Les modèles de spécification sont relatifs au travail en cours directement lorsque
// le rapporteur est appelé.
spécifications : ['example_spec.js'],

// Options à passer à Jasmine-node.
onPrepare : fonction() {
require('jasmine-reporters');
jasmine.getEnv().addReporter(new jasmine.JUnitXmlReporter('xmloutput', true, true));
},

// Options à passer à Jasmine-node.
jasmineNodeOpts : {
showColors : vrai,
defaultTimeoutInterval : 30000
}
} ;

salut @jkmurthy

J'ai rencontré exactement le même problème. Dans la dernière version de [email protected] , ils ont changé le nom du module. Il n'y a pas de documentation à ce sujet, mais c'est là dans ce fichier.

https://github.com/larrymyers/jasmine-reporters/blob/master/src/junit_reporter.js

  • Usage:

    • jasmine.getEnv().addReporter(nouveau jasmineReporters.JUnitXmlReporter(options);

Pourtant, je ne pouvais pas le faire fonctionner car il est indiqué que le module 'jasmineReporters' n'est pas défini.

Je suis donc passé à l'ancienne version de [email protected] , cela a parfaitement fonctionné. Assurez-vous de créer le répertoire auquel vous vous référez comme sortie dans les options du reporter.

La rétrogradation de jasmine-reporters à 0.4.1 n'a pas fonctionné
Essayé avec
onPrepare : fonction() {
var nom_dossier = (nouvelle Date()).toString().split(' ').splice(1, 4).join(' ');
var mkdirp = require('mkdirp');
var newFolder = "./reports/" + nom_dossier ;
require('jasmine-reporters');

            mkdirp(newFolder, function(err) {
              if (err) {
                console.error(err);
              } else {
                jasmine.getEnv().addReporter(new jasmine.JUnitXmlReporter(newFolder, true, true));
              }
            });
          },

Pas encore de chance

C'est définitivement un problème pour moi. En utilisant jasmine-reporters 2.0, j'obtiens
D:\HgBuild\TPSOneSearch\Unstable\Tyler.TPS.OneSearch\Tyler.TPS.Web.OneSearch\app
\test\e2e\oneSearchChromeConf.js :29
jasmine.getEnv().addReporter(nouveau jasmine.JUnitXmlReporter(uri, t
rue, vrai, ''));
^
TypeError : undefined n'est pas une fonction.

la modification de "nouveau jasmine.JUnitXmlReporter" en "jasmineReporters.JUnitXmlReporter" donne des résultats jasmineReporters non définis.

Si je ramène jasmine-reporters à la version 0.4.1, cela fonctionne à merveille.

jasmine-reporters 2.0 a une API différente de 1.x ; vous ne pouvez pas simplement mettre à jour aveuglément ; ajustez vos invocations.

En regardant le commentaire dans le fichier junit_reporter.js pour JUnitXmlReporter, j'ai configuré mon fichier conf comme suit :

onPrepare : fonction () {
require('jasmine-reporters');
var options = {
savePath : 'un-chemin-de-fichier',
consolider : vrai,
useDotNotation : vrai
} ;
jasmine.getEnv().addReporter(nouveau jasmineReporters.JUnitXmlReporter(options));
},

ça devrait marcher non ?
J'obtiens l'erreur suivante "ReferenceError: jasmineReporters n'est pas défini"

/**
* Génère JUnit XML pour l'exécution de la spécification donnée. Il existe différentes options
* pour contrôler où les résultats sont écrits, et les valeurs par défaut sont
* configuré pour créer le moins de fichiers .xml possible. Il est possible de sauvegarder un
* fichier XML unique, ou un fichier XML pour chaque describe niveau supérieur, ou un
* Fichier XML pour chaque describe indépendamment de l'imbrication.
*
* Utilisation :
*
* jasmine.getEnv().addReporter(nouveau jasmineReporters.JUnitXmlReporter(options);
*
* @param {objet} [options]
* @param {string} [savePath] répertoire pour enregistrer les fichiers (par défaut : '')
* @param {booléen} [consolidateAll] s'il faut enregistrer tous les résultats de test dans un
* fichier unique (par défaut : true)
* REMARQUE : si la valeur est true, {filePrefix} est traité comme le nom de fichier complet (à l'exception
* rallonge)
* @param {booléen} [consolider] s'il faut enregistrer les descriptions imbriquées dans le
* même fichier que leur parent (par défaut : true)
* REMARQUE : true ne fait rien si consoliderAll est également vrai.
* REMARQUE : false définit également consoliderAll sur false.
* @param {booléen} [useDotNotation] s'il faut séparer les noms de suite avec
* des points au lieu d'espaces, c'est-à-dire "Class.init" et non "Class init" (par défaut : true)
* @param {string} [filePrefix] est la valeur de chaîne qui est ajoutée au début du
* fichier de sortie xml (par défaut : junitresults-)
* REMARQUE : si consoliderAll est vrai, la valeur par défaut est simplement "junitresults" et
* cela devient le nom de fichier réel, c'est-à-dire "junitresults.xml"
*/

@john-bridges Pouvez-vous envelopper votre code en back-ticks ? C'est difficile à lire sans ça.

@john-bridges Eh bien, pas étonnant que la variable jasmineReporters ne soit pas définie puisque vous ne l'avez pas définie, en effet. Vous devez affecter le module :

var jasmineReporters = require('jasmine-reporters');

@mzgol Je suis un idiot, fonctionne comme un charme. Merci pour votre aide j'apprécie.

La version précédente de jasmine-reporters attachait les rapporteurs directement à l'objet jasmine ; maintenant, il s'attache à ses propres exportations, ce qui est bien mieux.

Je vois d'où vient la confusion. ;)

@mzgol Je suis d'accord, une bien meilleure façon, merci encore.

[email protected] prend en charge Jasmine 2.x et, comme observé / discuté ci-dessus, a une syntaxe et un point d'entrée différents (sur son propre objet par rapport à l'objet global jasmine ). Cela dit, il ne prend en charge que Jasmine 2.x, pas Jasmine 1.x, ce que Protractor utilise. Ainsi, même si vous pouvez obtenir des erreurs passées dans la configuration de votre rapporteur en faisant var jasmineReporters = require('jasmine-reporters'); new jasmineReporters.JUnitXmlReporter(/*...*/); , vous aurez du mal à obtenir une sortie significative car il attend les événements Jasmine 2.x et l'interface du journaliste.

La bonne façon de faire fonctionner JUnitXmlReporter avec Jasmine 1.x est de modifier légèrement les instructions originales de @juliemr :

npm install jasmine-reporters@~1.0.0

Suivez ensuite le reste de ses instructions comme d'habitude.

J'ai révisé le fichier README de jasmine-reporters pour résoudre les différences [email protected] et [email protected] . J'ai également ajouté une section spécifique sur l'utilisation de jasmine-reporters avec Protractor car la question revient souvent.

Merci @ksraja d'avoir signalé la documentation qui manque cruellement.

Pourquoi ce problème continue-t-il à être fermé, il est évident que c'est toujours un problème.

    onPrepare: function() {

        require('jasmine-reporters');
        jasmine.getEnv().addReporter(new jasmine.JUnitXmlReporter('test-target/', true, true));

        browser.driver.get('http://localhost:9000');
        require('./test/e2e/models/login-page').login();
    },

Lance une erreur :

Running "protractor:e2e" (protractor) task

/Users/212400520/PredixExperience/predix-dashboard/node_modules/jasmine-reporters/src/jasmine.console
_reporter.js:2
    if (! jasmine) {
          ^
ReferenceError: jasmine is not defined
    at /Users/212400520/PredixExperience/predix-dashboard/node_modules/jasmine-reporters/src/jasmine.
console_reporter.js:2:11
    at Object.<anonymous> (/Users/212400520/PredixExperience/predix-dashboard/node_modules/jasmine-re
porters/src/jasmine.console_reporter.js:144:3)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (/Users/212400520/PredixExperience/predix-dashboard/node_modules/jasmine-re
porters/src/load_reporters.js:1:63)
    at Module._compile (module.js:456:26)
>> 
Fatal error: protractor exited with code: 8

@jonniespratley J'ai trouvé que npm install jasmine-reporters installe la version 1.0.1 par défaut.
Assurez-vous donc d'avoir installé la dernière version de jasmine-reporters . Par exemple

npm install jasmine-reporters@~2.0.3 --save-dev

Après cela, j'ai mis à jour la configuration du rapporteur comme suit :

var jasmineReporters = require('jasmine-reporters');
exports.config = {
    framework: 'jasmine2',
    //...  
    //Other configurations...
    //...  
    onPrepare: function () {
        jasmine.getEnv().addReporter(new jasmineReporters.JUnitXmlReporter({
            savePath: '..',
            consolidateAll: false
        }));
    },
    jasmineNodeOpts: {
        showColors: true,
        defaultTimeoutInterval: 60000,
        print: function() {}
    }
};

Maintenant, Jasmine-reporters fonctionne bien pour moi.

Dans la documentation des rapporteurs pour la mise à niveau vers le framework jasmine2, dans la section des reporters, ce serait bien si la réponse de @luixaviles était documentée. Je ne peux pas imaginer que je suis le seul à avoir eu du mal à comprendre comment obtenir des rapports junit pour jasmine2. Certes, une fois que j'ai trouvé ceci et relu la documentation actuelle, c'est plus clair, mais à l'origine, je l'ai lu par erreur pour signifier que jasmine-reporters ne fonctionnait pas (du tout) avec jasmine2. Avoir la réponse ci-dessus, ou un lien vers le fichier readme de jasmine-reporters rendrait les choses un peu plus faciles.

essayé les rapports de jasmin
var jasmineReporters = require('jasmine-reporters');
jasmine.getEnv().addReporter(new jasmineReporters.JUnitXmlReporter('../TestReports/test', true, true));

il a bien fonctionné, mais aucun fichier xml n'a été créé

j'ai essayé d'accéder à https://github.com/angular/protractor/blob/master/spec/junitOutputConf.js , mais donne 404

@spatchamatla Votre exemple utilise une combinaison étrange de syntaxe [email protected] (arguments ordonnés) avec ce qui ressemble au journaliste [email protected] (jasmineReporters.JUnitXmlReporter vs jasmine.JUnitXmlReporter).

Essayez d'utiliser la syntaxe correcte pour créer le rapporteur et voyez si vous allez plus loin.

Modifié à partir de l'exemple dans le README de jasmine-reporters :

var junitReporter = new jasmineReporters.JUnitXmlReporter({
    savePath: '../TestReports/test'
});
jasmine.getEnv().addReporter(junitReporter);

Assurez-vous que le dossier '../TestReports/test' existe car je pense qu'il échoue
silencieusement aussi.

Le mercredi 15 avril 2015 à 16h33, Ben Loveridge [email protected]
a écrit:

@spatchamatla https://github.com/spatchamatla Votre exemple utilise un
étrange combinaison de syntaxe [email protected] (arguments ordonnés)
avec ce qui ressemble au journaliste de [email protected]
(jasmineReporters.JUnitXmlReporter contre jasmine.JUnitXmlReporter).

Essayez d'utiliser la syntaxe correcte pour créer le reporter et voyez si vous obtenez
plus loin.

Modifié à partir de l'exemple dans le README de jasmine-reporters :

var junitReporter = new jasmineReporters.JUnitXmlReporter({
savePath : '../TestReports/test'
});
jasmine.getEnv().addReporter(junitReporter);


Répondez directement à cet e-mail ou consultez-le sur GitHub
https://github.com/angular/protractor/issues/60#issuecomment -93451490.

Ce n'est jamais une mauvaise idée, même si jasmine-reporters utilisera https://github.com/substack/node-mkdirp pour essayer de créer le répertoire.

@bloveridge @spenoir , je suis rétrogradé à [email protected] et j'ai utilisé ce qui suit

   //For junit output reports
        var reporters = require('jasmine-reporters');
        var capsPromise = browser.getCapabilities();
        capsPromise.then(function (caps) {
            var browserName = caps.caps_.browserName.toUpperCase();
            var browserVersion = caps.caps_.version;
            var prePendStr = browserName + "-" + browserVersion + "-";
            jasmine.getEnv().addReporter(new jasmine.JUnitXmlReporter('Protractor/TestReports', true, true, prePendStr));
        });

il a commencé à fonctionner, le seul inconvénient est sa création du dossier dans le répertoire personnel plutôt que dans le dossier du projet. Quand j'ai essayé d'utiliser le chemin du dossier du projet, il dit toujours

Avertissement : Échec de l'écriture du rapport Junit pour '../TestReports', 'CHROME-41.0.2272.118-TestImpersonationPage.xml'. Les raisons:
Tentative de Rhino : java n'est pas défini
Tentative de PhantomJ : la fenêtre n'est pas définie
Tentative NodeJS : EACCES, autorisation refusée '/Users/TestReports'

j'ai créé le dossier manuellement et affiche toujours ce qui précède dans la console

est-ce que 'Protractor/TestReports' est le bon chemin et ce dossier existe-t-il ?

Le mercredi 15 avril 2015 à 17h01, spatchamatla [email protected]
a écrit:

@bloveridge https://github.com/bloveridge @spenoir
https://github.com/spenoir , je suis rétrogradé à [email protected] et
utilisé ci-dessous

//Pour les rapports de sortie junit
var reporters = require('jasmine-reporters');
var capsPromise = navigateur.getCapabilities();
capsPromise.then(function (caps) {
var nom_navigateur = caps.caps_.nom_navigateur.toUpperCase();
var navigateurVersion = caps.caps_.version ;
var prePendStr = nomNavigateur + "-" + VersionNavigateur + "-" ;
jasmine.getEnv().addReporter(new jasmine.JUnitXmlReporter('Protractor/TestReports', true, true, prePendStr));
});

il a commencé à fonctionner, le seul inconvénient est sa création du dossier dans home
répertoire plutôt que dans le dossier du projet. Quand j'ai essayé d'utiliser le projet
chemin du dossier, il dit toujours

Tentative de Rhino : java n'est pas défini
Tentative de PhantomJ : la fenêtre n'est pas définie
Tentative NodeJS : les arguments de path.resolve doivent être des chaînes

j'ai créé le dossier manuellement et affiche toujours ce qui précède dans la console


Répondez directement à cet e-mail ou consultez-le sur GitHub
https://github.com/angular/protractor/issues/60#issuecomment -93460326.

'Protractor/TestReports' est le chemin qui a été créé dans le dossier d'accueil, puis j'ai utilisé

jasmine.getEnv().addReporter(new jasmine.JUnitXmlReporter('../TestReports', true, true, prePendStr));

et j'ai créé manuellement

screen shot 2015-04-15 at 12 07 09 pm

quand j'ai fait le test, ça donne toujours
Avertissement : Échec de l'écriture du rapport Junit pour '../TestReports', 'CHROME-41.0.2272.118-TestImpersonationPage.xml'. Les raisons:
Tentative de Rhino : java n'est pas défini
Tentative de PhantomJ : la fenêtre n'est pas définie
Tentative NodeJS : EACCES, autorisation refusée '/Users/TestReports'

vous pouvez essayer d'assouplir les autorisations sur le dossier TestReports, pas sûr
après ça.

Le mercredi 15 avril 2015 à 17h10, spatchamatla [email protected]
a écrit:

'Protractor/TestReports' est le chemin qui a été créé dans le dossier home,
puis j'ai utilisé

jasmine.getEnv().addReporter(new jasmine.JUnitXmlReporter('../TestReports', true, true, prePendStr));

et j'ai créé manuellement

[image : capture d'écran 2015-04-15 à 12 07 09 pm]
https://cloud.githubusercontent.com/assets/4671240/7163457/278cffa6-e368-11e4-9994-2c0b5d33f07c.png

quand j'ai fait le test, ça donne toujours
Attention : l'écriture du rapport Junit a échoué pour '../TestReports',
'CHROME-41.0.2272.118-TestImpersonationPage.xml'. Les raisons:
Tentative de Rhino : java n'est pas défini
Tentative de PhantomJ : la fenêtre n'est pas définie
Tentative NodeJS : EACCES, autorisation refusée '/Users/TestReports'


Répondez directement à cet e-mail ou consultez-le sur GitHub
https://github.com/angular/protractor/issues/60#issuecomment -93466365.

Bien sûr, merci @spenoir pour vos suggestions et vos commentaires

super fil. beaucoup aidé.
pensé que j'avais un problème - mais ne le faites pas. impossible de trouver un moyen de supprimer :)
continuez votre bon travail.

@jkmurthy @ksraja Il semble que le jasmineReports répertorié soit en fait l'exportation de la fonction require.

par exemple,
var jasmineReporters = require('jasmine-reporters');

L'exemple sur le readme de jasmine-reporters fonctionne pour moi : https://github.com/larrymyers/jasmine-reporters#protractor

Si vous n'avez besoin que de la sortie de la console, j'étais satisfait de https://github.com/bcaudan/jasmine-spec-reporter/blob/master/docs/protractor-configuration.md

@josephdpurcell , le lien que vous avez fourni a également fonctionné pour moi. Voici ma config, j'espère que ça t'aidera !
Assurez-vous d'avoir installé le package mkdirp ainsi que les autres packages jasmine 2.x et jasmine-reporters 2.X.
Cette configuration crée le dossier pour éviter un échec silencieux si le dossier n'existe pas.

   var folderName = ('output_folder');
    var mkdirp = require('mkdirp');
    mkdirp(folderName, function(err) {
      if (err) {
        console.error(err);
       } else {
          var jasmineReporters = require('jasmine-reporters');
          jasmine.getEnv().addReporter(new jasmineReporters.JUnitXmlReporter({
            consolidateAll: true,
            savePath: folderName,
             filePrefix: 'xmloutput-'
            }));
         }
    });
Cette page vous a été utile?
0 / 5 - 0 notes