it-swarm.com.de

Karma Test Runner ausführlicher Testbericht in der Konsole

Ich habe gerade mit Unit-Test meiner angular App mit Karma begonnen. Alles funktioniert wie erwartet

Chrome 26.0 (Windows): 1 von 1 ausgeführt
Chrome 26.0 (Windows): 1 von 1 ERFOLG ausgeführt (0,878 Sekunden/0,112 Sekunden)

Es gibt jedoch eine Möglichkeit, weitere Informationen zum Testergebnis auszugeben. Beispiel: Name der ausgeführten Suite und des ausgeführten Tests sowie deren Ergebnis. Ich habe einige Tutorials gelesen, in denen Jasmine Testergebnisse im Browser ausgibt. Ich frage mich, ob es auch im Karma erreicht werden kann.

43
Amitava

Ich habe nach etwas Ähnlichem gesucht und Folgendes gefunden: https://github.com/usrz/javascript-karma-verbose-reporter . Erzeugt diese Art von Ausgabe:

$ karma start --reporters=verbose

Suites and tests results:

 - the app.router.config module :
   * contains a router property : ok
   * configures the router title : ok
   * should have a login route : ok
 - the organization module :
   * contains a state property : ok
   * should have a streams route after configuration : ok
   * when activated, should set state based on organization in route : ok
 - the streams module :
   * points to state : ok
   * loads organization streams upon activation : ok
   * loads organization streams via API : ok

Browser results:

 - PhantomJS 1.9.8 (Mac OS X 0.0.0): 9 tests
   - 9 ok

Um dies zu einer Standardoption zu machen, können Sie dies zu Ihrer Karma-Konfiguration hinzufügen, z.

reporters: ['verbose', 'junit']
17

Ich habe gerade einen HTML-Reporter für Karma fertiggestellt, damit Sie ihn den Reportern hinzufügen können. Sie erhalten einige zusätzliche Informationen wie in der Konsole, können jedoch in Ihrer Konfiguration mit "singleRun = true" fortfahren. Das Plugin befindet sich hier:

https://npmjs.org/package/karma-htmlfile-reporter

Nachdem Sie das Plugin über "npm install karma-htmlfile-reporter -g" installiert haben, müssen Sie nur einige Zeilen zu Ihrer karma.conf.js hinzufügen:

reporters: ['progress', 'html'],

htmlReporter: {
  outputFile: 'tests/units.html'
},

plugins: [
  // ... your other plugins here
  'karma-htmlfile-reporter'
]

Nachdem Sie Ihre Karma-Tests ausgeführt haben, erstellt das Plugin eine gestaltete HTML-Datei, die Sie in Ihrem Browser anzeigen können.

15
Matthias

Wie Ilja sagte, würde ich nicht wissen, welche Art von Informationen Sie von erfolgreichen Tests erwarten würden. Sie könnten jedoch die Debug-Seite öffnen, wenn Sie die Tests in einem Browser ausführen: Wahrscheinlich bei http://localhost:9876/debug.html. Alle Unit-Tests werden dort in der Konsole protokolliert.

9
DJ_HOEK

Ich denke, dieses Documention kann Ihnen helfen, seine Ausgabe in der Konsole zu konfigurieren.

Wie beschrieben:

reporters: ['progress', 'junit']
  • Der Fortschritt wird in der Konsole ausgegeben
  • Das 'junit' ist ein Karma-Plugin für die Ausgabe in externen Dateien. :)
7
micfan

Aus der Antwort von @Carles Barrobés. In der ursprünglichen Frage ging es um angular -Anwendungen. Daher dachte ich, ich würde die Schritte auflisten, damit dies mit ng test Funktioniert.

Installieren Sie den ausführlichen Reporter:

npm install --save-dev karma-verbose-reporter

Aktualisieren Sie Ihre Datei karma.conf.js so, dass sie Folgendes enthält:

module.exports = function (config) {
  config.set({
    plugins: [
      require('karma-verbose-reporter')
    ],
    reporters: ['verbose']
  });
};

Beachten Sie, dass ich nur für die Berichterstellung relevante Einstellungen eingefügt habe. Lassen Sie die anderen Einstellungen in der Konfigurationsdatei unverändert.

Jetzt können Sie ng test Ausführen, um eine ausführliche Ausgabe zu erhalten

2
Ian Jamieson

Ich habe was du willst. Sie möchten einen detaillierten Bericht in der Konsole selbst.

Mit ' progress ' wird nur so viel Erfolg ausgegeben, aber kein detaillierter Bericht.

beispiel: 1 von 1 ERFOLG ausgeführt (0,878 Sekunden/0,112 Sekunden)

reporters: ['progress']

Verwenden Sie zum Drucken von Detailberichten in der Konsole selbst den "Mocha" -Report, der die Detailausführung in der Konsole ausgibt, wie dies bei "kjhtml" in broswer der Fall ist.

reporters: ['mocha']

mocha druckt in der Konsole selbst, verwendet mit Phantomjs Browser und chrome headless browser

Du musst das gleiche Plugin haben. folge link für dasselbe

0
vipul patel