Protractor: Junit-Reporter

Erstellt am 28. Aug. 2013  ·  42Kommentare  ·  Quelle: angular/protractor

Wir wollen Winkelmessertests auf Jenkins durchführen, daher wäre es sehr nützlich, wenn es einen Junit-Reporter gäbe (wie Karma), damit Jenkins den Status der Tests melden kann

feature request

Hilfreichster Kommentar

Wie Sie dies in Ihrer Konfigurationsdatei auf nur leicht hackige Weise tun - ich habe dies mit der eigenen Testsuite von Protractor getestet:

npm install jasmine-reporters

Ihre Konfigurationsdatei:

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',
};

Alle 42 Kommentare

Meine 2 Cent hier: Wenn Sie Grunt als Build-Tool verwenden, können Sie Ihre Protractor-Tests mit grunt-jasmine-node ausführen und konfigurieren, um JUnit-ähnliche Berichte zu erhalten!

Wie Sie dies in Ihrer Konfigurationsdatei auf nur leicht hackige Weise tun - ich habe dies mit der eigenen Testsuite von Protractor getestet:

npm install jasmine-reporters

Ihre Konfigurationsdatei:

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',
};

Akzeptiert es den relativen Pfad oder den absoluten Pfad des Verzeichnisses. Der absolute Pfad funktioniert, der relative Pfad jedoch nicht. Ich habe Optionen wie ../Reports ausprobiert, aber es ist nutzlos
jasmine.getEnv().addReporter(
new jasmine.JUnitXmlReporter('xmloutput', true, true));
},

erforscht und arbeiten, ignorieren Sie meinen letzten Kommentar

Ich war nicht schlau genug, also erwartete ich, dass der Ordner erstellt wird, aber tatsächlich muss der Ordner vorher erstellt werden.

@juliemr Wie benutzt man es mit zwei parallel laufenden Protractor-Instanzen, zB über grunt-concurrent ? Es wird benötigt, damit wir Tests in Firefox und Chrome gleichzeitig ausführen können, aber es wird dazu führen, dass ein XML das andere ersetzt, was Jenkins verwirren wird.

Vielleicht sollte Protractor aus solchen Gründen wissen, wie man parallel läuft, ähnlich wie Karma?

@mzgol Haben Sie versucht, jedes Ziel als gleichzeitige Aufgabe auszuführen, die je nach Plattform einen anderen Junit-XML-Bericht ausgibt? Sie könnten einfach einen neuen Ausgabeordner basierend auf dem Zielnamen erstellen.

Sie sollten sich auch Ziele mit mehreren Konfigurationen auf Jenkins ansehen, mit denen Sie Ihre Build-Schritte jeweils parallel mit einer sauberen Umgebung ausführen können. Es hat auch raffinierte Funktionen wie Prüfstein-Builds und ermöglicht es Ihnen, Parallelität besser zu drosseln als Grunzen.

Gibt es eine ähnliche Konfiguration für Mocha? (da ich Jasmine nicht benutze)

@mzgol Ich habe den Vorschlag von jvandyke ausprobiert (danke) und es funktioniert gut für mich:

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));
        });
 },

Danke. Bei mir funktioniert es auch:

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

Ich habe darüber einen HTML-Reporter erstellt. Bitte lasst mich eure Kommentare wissen
https://github.com/jintoppy/protractor-html-screenshot-reporter

Es könnte eine Idee sein, die Ordnererstellung zu Dokumenten hinzuzufügen, da ich auch darüber gestolpert bin @tracycummins !

@juliemr Müde alle in den Beispielen aufgeführten Optionen. Ich bekomme diesen Fehler. Alle Hinweise geschätzt

/home/jack/prototype/conf.js:19
jasmine.getEnv().addReporter(new jasmine.JUnitXmlReporter('xmloutput', true, true));
^
TypeError: undefined ist keine Funktion
unter exports.config.onPrepare (/home/jack/prototype/conf.js:19:33)
bei Runner.runFilenamesOrFns_ (/home/usr/lib/node_modules/protractor/lib/runner.js:64:9)
bei Runner.runTestPreparers (/home/usr/lib/node_modules/protractor/lib/runner.js:91:8)
bei runner.controlFlow.execute.then.jasmineNodeOpts (/home/usr/lib/node_modules/protractor/lib/frameworks/jasmine.js:39:12)
unter webdriver.promise.ControlFlow.runInNewFrame_ (/home/usr/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:1539:20)
unter webdriver.promise.ControlFlow.runEventLoop_ (/home/usr/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:1404:8)
beim Wrapper als _onTimeout
bei Timer.listOnTimeout als ontimeout
==== asynchrone Aufgabe ====
Testvorbereiter ausführen
bei Object.exports.run (/home/usr/lib/node_modules/protractor/lib/frameworks/jasmine.js:38:24)
bei driverprovider_.setupEnv.then.then.then.testResult (/home/usr/lib/node_modules/protractor/lib/runner.js:233:28)
bei _fulfilled (/home/usr/lib/node_modules/protractor/node_modules/q/q.js:797:54)
bei self.promiseDispatch.done (/home/usr/lib/node_modules/protractor/node_modules/q/q.js:826:30)
bei Promise.promise.promiseDispatch (/home/usr/lib/node_modules/protractor/node_modules/q/q.js:759:13)
unter /home/usr/lib/node_modules/protractor/node_modules/q/q.js:525:49
at flush (/home/usr/lib/node_modules/protractor/node_modules/q/q.js:108:17)
bei process._tickCallback (node.js:423:13)
bei Function.Module.runMain (module.js:499:11)


// Eine Beispielkonfigurationsdatei.
exports.config = {
// Die Adresse eines laufenden Selenium-Servers.
seleniumAddress: ' http://localhost :4444/wd/hub',
allScriptsTimeout: 30000,
// An die Webdriver-Instanz zu übergebende Fähigkeiten.
Fähigkeiten: {
'browserName': 'firefox'
},

// Spezifikationsmuster beziehen sich direkt auf die aktuelle Arbeit, wenn
// Winkelmesser wird aufgerufen.
Spezifikationen: ['example_spec.js'],

// An Jasmine-node zu übergebende Optionen.
onPrepare: function() {
require('Jasmin-Reporter');
jasmine.getEnv().addReporter(new jasmine.JUnitXmlReporter('xmloutput', true, true));
},

// An Jasmine-node zu übergebende Optionen.
jasmineNodeOpts: {
showColors: true,
defaultTimeoutInterval: 30000
}
};

Hallo @jkmurthy

Ich bin auf genau das gleiche Problem gestoßen. In der neuesten Version von [email protected] haben sie den Modulnamen geändert. Es gibt keine Dokumentation dazu, aber es gibt es in dieser Datei.

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

  • Verwendungszweck:

    • jasmine.getEnv().addReporter(neuer jasmineReporters.JUnitXmlReporter(Optionen);

Trotzdem konnte ich es nicht zum Laufen bringen, da das Modul 'jasmineReporters' undefiniert steht.

Also bin ich auf die ältere Version von [email protected] umgestiegen , es hat perfekt funktioniert. Stellen Sie sicher, dass Sie das Verzeichnis erstellen, auf das Sie sich als Ausgabe in den Reporter-Optionen beziehen.

Das Downgrade von Jasmine-Reporters auf 0.4.1 hat nicht funktioniert
Versucht mit
onPrepare: function() {
var folderName = (neues Datum()).toString().split(' ').splice(1, 4).join(' ');
var mkdirp = require('mkdirp');
var newFolder = "./reports/" + folderName;
require('Jasmin-Reporter');

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

Noch kein Glück

Das ist definitiv ein Thema für mich. Mit Jasmine-Reporters 2.0 bekomme ich
D:\HgBuild\TPSOneSearch\Unstable\Tyler.TPS.OneSearch\Tyler.TPS.Web.OneSearch\app
\test\e2e\oneSearchChromeConf.js:29
jasmine.getEnv().addReporter(neu jasmine.JUnitXmlReporter(uri, t
wahr, wahr, ''));
^
TypeError: undefined ist keine Funktion.

Das Ändern von "new jasmine.JUnitXmlReporter" in "jasmineReporters.JUnitXmlReporter" führt dazu, dass JasmineReporters nicht definiert ist.

Wenn ich Jasmine-Reporters auf 0.4.1 zurücksetze, funktioniert es hervorragend.

Jasmine-Reporters 2.0 hat eine andere API als 1.x; Sie können nicht einfach blind aktualisieren; passen Sie Ihre Aufrufe an.

Wenn ich mir den Kommentar in der Datei junit_reporter.js für JUnitXmlReporter ansehe, habe ich meine conf-Datei wie folgt eingerichtet:

onPrepare: function () {
require('Jasmin-Reporter');
var-Optionen = {
savePath: 'some-file-path',
konsolidieren: wahr,
useDotNotation: wahr
};
jasmine.getEnv().addReporter(neuer jasmineReporters.JUnitXmlReporter(Optionen));
},

das sollte funktionieren oder nicht?
Ich erhalte die folgende Fehlermeldung „ReferenceError: jasmineReporters is not defined“

/**
* Generiert JUnit-XML für den angegebenen Spezifikationslauf. Es gibt verschiedene Optionen
* um zu steuern, wo die Ergebnisse geschrieben werden, und die Standardwerte sind
* Stellen Sie so ein, dass so wenige .xml-Dateien wie möglich erstellt werden. Es ist möglich, a zu speichern
* einzelne XML-Datei oder eine XML-Datei für jede oberste Ebene describe oder eine
* XML-Datei für jedes describe unabhängig von der Verschachtelung.
*
* Verwendungszweck:
*
* jasmine.getEnv().addReporter(neuer jasmineReporters.JUnitXmlReporter(Optionen);
*
* @param {Objekt} [Optionen]
* @param {string} [savePath] Verzeichnis zum Speichern der Dateien (Standard: '')
* @param {boolean} [consolidateAll] ob alle Testergebnisse in a gespeichert werden sollen
* einzelne Datei (Standard: true)
* HINWEIS: Wenn wahr, wird {filePrefix} als vollständiger Dateiname behandelt (ausgenommen
* Verlängerung)
* @param {boolean} [konsolidieren] ob verschachtelte Beschreibungen innerhalb der gespeichert werden sollen
* gleiche Datei wie ihr Elternteil (Standard: wahr)
* HINWEIS: true bewirkt nichts, wenn consolidateAll ebenfalls true ist.
* HINWEIS: false setzt consolidateAll auch auf false.
* @param {boolean} [useDotNotation] ob Suite-Namen mit getrennt werden sollen
* Punkte statt Leerzeichen, dh "Class.init" nicht "Class init" (Standard: true)
* @param {string} [filePrefix] ist der Stringwert, der dem vorangestellt wird
* xml-Ausgabedatei (Standard: junitresults-)
* HINWEIS: Wenn consolidateAll wahr ist, ist der Standardwert einfach "junitresults" und
* dies wird zum eigentlichen Dateinamen, also "junitresults.xml"
*/

@john-bridges Können Sie Ihren Code in Backticks einschließen? Ohne ist es schwer zu lesen.

@john-bridges Nun, kein Wunder, dass die Variable jasmineReporters nicht definiert ist, da Sie sie tatsächlich nicht definiert haben. Sie müssen das Modul zuweisen:

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

@mzgol Ich bin ein Idiot, funktioniert wie ein Zauber. Danke für deine Hilfe, ich weiß es zu schätzen.

Die vorherige Version von jasmine-reporters hängte die Reporter direkt an das Objekt jasmine an; jetzt wird es an seinen eigenen Export angehängt, was viel besser ist.

Ich sehe, woher die Verwirrung kam. ;)

@mzgol Ich stimme zu, ein viel besserer Weg, nochmals danke.

[email protected] unterstützt Jasmine 2.x und hat, wie oben beobachtet/besprochen, eine andere Syntax und einen anderen Einstiegspunkt (auf seinem eigenen Objekt gegenüber dem globalen jasmine -Objekt). Allerdings unterstützt es _nur_ Jasmine 2.x, nicht Jasmine 1.x, das von Protractor verwendet wird. Während Sie also möglicherweise Fehler in Ihrer Winkelmesserkonfiguration beheben können, indem Sie var jasmineReporters = require('jasmine-reporters'); new jasmineReporters.JUnitXmlReporter(/*...*/); , wird es Ihnen schwer fallen, eine sinnvolle Ausgabe zu erhalten, da auf Jasmine 2.x-Ereignisse und die Reporter-Schnittstelle gewartet wird.

Der richtige Weg, um JUnitXmlReporter mit Jasmine 1.x zum Laufen zu bringen, besteht darin, die ursprünglichen Anweisungen von @juliemr leicht zu ändern:

npm install jasmine-reporters@~1.0.0

Befolgen Sie dann den Rest ihrer Anweisungen wie gewohnt.

Ich habe die README-Datei der Jasmin-Reporter überarbeitet, um die Unterschiede zwischen $ [email protected] und [email protected] anzusprechen. Ich habe auch einen speziellen Abschnitt über die Verwendung von Jasmin-Reportern mit Protractor hinzugefügt, da die Frage häufig gestellt wird.

Danke @ksraja für den Hinweis auf die ernsthaft fehlende Dokumentation.

Warum wird dieses Problem immer wieder geschlossen, es ist offensichtlich, dass dies immer noch ein Problem ist.

    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();
    },

Löst Fehler aus:

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 Ich habe festgestellt, dass npm install jasmine-reporters standardmäßig die Version 1.0.1 #$ installiert.
Stellen Sie also sicher, dass Sie die neueste Version von jasmine-reporters installiert haben. Zum Beispiel

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

Danach habe ich die Konfiguration des Winkelmessers wie folgt aktualisiert:

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() {}
    }
};

Jetzt funktioniert Jasmin-Reporter gut für mich.

In der Dokumentation von Winkelmessern zum Upgrade auf das Jasmine2-Framework im Abschnitt "Reporter" wäre es schön, wenn die Antwort von @luixaviles dokumentiert wäre. Ich kann mir nicht vorstellen, dass ich der Einzige bin, der Schwierigkeiten hatte, herauszufinden, wie man Junit-Berichte für Jasmine2 erhält. Zugegeben, sobald ich das gefunden und die aktuelle Dokumentation noch einmal gelesen habe, ist es klarer, aber ursprünglich habe ich es fälschlicherweise gelesen, um zu bedeuten, dass Jasmin-Reporter (überhaupt) nicht mit Jasmine2 funktionierten. Die obige Antwort oder einen Link zur Readme-Datei von Jasmine-Reporters zu haben, würde die Dinge ein bisschen einfacher machen.

versuchte die Jasminberichte
var jasmineReporters = require('jasmine-reporters');
jasmine.getEnv().addReporter(new jasmineReporters.JUnitXmlReporter('../TestReports/test', true, true));

es lief gut, aber es wurde keine xml-datei erstellt

Ich habe versucht, zu https://github.com/angular/protractor/blob/master/spec/junitOutputConf.js zu gelangen, gibt aber 404 aus

@spatchamatla Ihr Beispiel verwendet eine seltsame Kombination aus [email protected] (geordnete Argumente) mit dem, was wie der [email protected] aussieht (jasmineReporters.JUnitXmlReporter vs. jasmine.JUnitXmlReporter).

Versuchen Sie, den Reporter mit der richtigen Syntax zu erstellen, und sehen Sie, ob Sie weiterkommen.

Abgeändert vom Beispiel in der README von Jasmine-Reporters:

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

Stellen Sie sicher, dass der Ordner „../TestReports/test“ vorhanden ist, da er meiner Meinung nach fehlschlägt
auch lautlos.

Am Mittwoch, 15. April 2015 um 16:33 Uhr, Ben Loveridge [email protected]
schrieb:

@spatchamatla https://github.com/spatchamatla Ihr Beispiel verwendet a
seltsame Kombination von [email protected] (geordnete Argumente)
mit dem, was wie der [email protected] aussieht
(jasmineReporters.JUnitXmlReporter vs. jasmine.JUnitXmlReporter).

Versuchen Sie, den Reporter mit der richtigen Syntax zu erstellen, und prüfen Sie, ob Sie ihn erhalten
des Weiteren.

Abgeändert vom Beispiel in der README von Jasmine-Reporters:

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


Antworten Sie direkt auf diese E-Mail oder zeigen Sie sie auf GitHub an
https://github.com/angular/protractor/issues/60#issuecomment -93451490.

Keine schlechte Idee, obwohl Jasmin-Reporter https://github.com/substack/node-mkdirp verwenden werden, um zu versuchen, das Verzeichnis zu erstellen.

@bloveridge @spenoir , ich habe auf [email protected] heruntergestuft und das Folgende verwendet

   //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));
        });

Es hat funktioniert, der einzige Nachteil ist, dass der Ordner im Home-Verzeichnis und nicht im Projektordner erstellt wird. Als ich versuchte, den Projektordnerpfad zu verwenden, heißt es immer noch

Warnung: Fehler beim Schreiben des Junit-Berichts für „../TestReports“, „CHROME-41.0.2272.118-TestImpersonationPage.xml“. Gründe dafür:
Rhino-Versuch: Java ist nicht definiert
Versuch von PhantomJ: Fenster ist nicht definiert
NodeJS-Versuch: EACCES, Zugriff verweigert '/Users/TestReports'

Ich habe den Ordner manuell erstellt und zeigt immer noch das Obige in der Konsole an

ist 'Protractor/TestReports' der richtige Pfad und existiert dieser Ordner?

Am Mittwoch, 15. April 2015 um 17:01 Uhr, spatchamatla [email protected]
schrieb:

@bloveridge https://github.com/bloveridge @spenoir
https://github.com/spenoir , ich habe auf [email protected] heruntergestuft und
unten verwendet

//Für Junit-Ausgabeberichte
var reporters = require('jasmine-reporters');
var capsPromise = browser.getCapabilities();
capsPromise.then(Funktion (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));
});

Es hat funktioniert, der einzige Nachteil ist, dass es den Ordner zu Hause erstellt
Verzeichnis statt im Projektordner. Als ich versuchte, das Projekt zu verwenden
Ordnerpfad, heißt es immer noch

Rhino-Versuch: Java ist nicht definiert
Versuch von PhantomJ: Fenster ist nicht definiert
NodeJS-Versuch: Argumente für path.resolve müssen Zeichenfolgen sein

Ich habe den Ordner manuell erstellt und zeigt immer noch das Obige in der Konsole an


Antworten Sie direkt auf diese E-Mail oder zeigen Sie sie auf GitHub an
https://github.com/angular/protractor/issues/60#issuecomment -93460326.

'Protractor/TestReports' ist der Pfad, der im Home-Ordner erstellt und dann verwendet wurde

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

und ich manuell erstellt

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

Als ich den Test lief, gibt es immer noch
Warnung: Fehler beim Schreiben des Junit-Berichts für „../TestReports“, „CHROME-41.0.2272.118-TestImpersonationPage.xml“. Gründe dafür:
Rhino-Versuch: Java ist nicht definiert
Versuch von PhantomJ: Fenster ist nicht definiert
NodeJS-Versuch: EACCES, Zugriff verweigert '/Users/TestReports'

Sie könnten versuchen, die Berechtigungen für den Ordner TestReports zu lockern, nicht sicher
nachdem.

Am Mittwoch, 15. April 2015 um 17:10 Uhr, spatchamatla [email protected]
schrieb:

„Protractor/TestReports“ ist der Pfad, der im Home-Ordner erstellt wurde,
dann habe ich verwendet

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

und ich manuell erstellt

[Bild: Screenshot 2015-04-15 um 12 07 09 pm]
https://cloud.githubusercontent.com/assets/4671240/7163457/278cffa6-e368-11e4-9994-2c0b5d33f07c.png

Als ich den Test lief, gibt es immer noch
Warnung: Schreiben des Junit-Berichts für „../TestReports“ fehlgeschlagen,
„CHROME-41.0.2272.118-TestImpersonationPage.xml“. Gründe dafür:
Rhino-Versuch: Java ist nicht definiert
Versuch von PhantomJ: Fenster ist nicht definiert
NodeJS-Versuch: EACCES, Zugriff verweigert '/Users/TestReports'


Antworten Sie direkt auf diese E-Mail oder zeigen Sie sie auf GitHub an
https://github.com/angular/protractor/issues/60#issuecomment -93466365.

Sicher, danke @spenoir für deine Vorschläge und Beiträge

toller Faden. sehr geholfen.
dachte, ich hätte ein Problem - aber nicht. finde keine möglichkeit zum löschen :)
Mach weiter so.

@jkmurthy @ksraja Es scheint, dass die aufgelisteten jasmineReports tatsächlich der Export der require-Funktion sind.

z.B,
var jasmineReporters = require('jasmine-reporters');

Das Beispiel in der Readme-Datei von Jasmine-Reporters funktioniert für mich: https://github.com/larrymyers/jasmine-reporters#protractor

Wenn Sie nur Konsolenausgaben benötigen, war ich mit https://github.com/bcaudan/jasmine-spec-reporter/blob/master/docs/protractor-configuration.md zufrieden

@josephdpurcell Der von Ihnen bereitgestellte Link hat auch für mich funktioniert. Hier ist meine Konfiguration, ich hoffe es hilft!
Stellen Sie sicher, dass Sie das Paket mkdirp sowie die anderen Pakete von jasmine 2.x und jasmine-reporters 2.x installiert haben.
Diese Konfiguration erstellt den Ordner, um einen unbeaufsichtigten Fehler zu vermeiden, wenn der Ordner nicht vorhanden ist.

   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-'
            }));
         }
    });
War diese Seite hilfreich?
0 / 5 - 0 Bewertungen