2017-08-25 1 views
1

Ich habe ein seltsames Szenario. Ich erstelle eine HTML-Seite und füge Skript-Tags hinzu. Die Script-Tags enthalten die js-Dateien der UI-Komponente, die Komponente ist vollständig mit react js entwickelt.Code Coverage für eine JS-Komponente durch Ausführen von Java Selen-Tests

Mein html: enter image description here Ich benutze einen lokalen Webserver diese Seite und in der Lage zu starten meine Komponente, um zu sehen, in diesem Fall ist es ein ‚modal‘.

Modal: enter image description here

schreibe ich Java-Selen-Tests in einem Maven env dieses modal zu testen, und es prüft es ohne Probleme.

Meine Anforderung ist jetzt, Codeabdeckung für diese Komponente zu erhalten, indem ich meine Java-Selenentests durchführe (oder sie sogar manuell teste).

Ist dies möglich, machbar. Ich habe viel gegoogelt, konnte nichts passendes finden.

Jede Hilfe wird am meisten geschätzt.

+1

Es ist möglich, wenn Sie einen Knoten-Anwendung verwenden, lesen Sie hier: https://medium.com/@the1mills/front-end-javascript-test-coverage-with-istanbul-selenium-4b2be44e3e98 ich denke, es wäre eine große Anstrengung, wenn Sie nicht Node/Express als Middleware verwenden. Denn wenn Sie express verwenden, können Sie es istanbul-middleware Sie könnten versuchen, Ihre dev Vorschau von Frontend für Ihre Berichterstattung, z. https: // lkrnac.net/blog/2014/04/measuring-code-coverage-by-graveur/ – hypery2k

+0

Der erste Link, den du geteilt hast, scheint interessant zu sein und mein Problem anzugehen. Ich werde es versuchen und Sie auf dem Laufenden halten. Danke noch einmal. – aspiringqa

+0

@ hypery2k - Dieses Problem ist gelöst. Ich habe den Artikel verfolgt und es hat super funktioniert !! Ich danke dir sehr!! – aspiringqa

Antwort

1

Zusammenfassung, inspiriert von dem oben genannten Link, aber in Kugeln für einige einfach zu folgen.

  1. die istanbul Abhängigkeit zu Ihrem package.json Fügen Sie die JS-Datei

  2. manuell Instrument, mit diesem Befehl

    istanbul instrument test.js >> test-instumented.js 
    
  3. Lassen Sie Ihre Dateien laufen diese instrumentierten Datei von der stattdessen zuzugreifen Original-js-Datei.

  4. Führen Sie einen Testlauf durch, um zu sehen, wie Ihre Seite ohne Probleme geladen wird.
  5. Jetzt für den tatsächlichen Lauf, fügen Sie dieses Coverage Informationsskript in Ihre @AfterClass oder nachdem alle Ihre Tests ausgeführt werden und bevor Sie schließen und Ihren Webdriver beenden. enter image description here

  6. Jetzt wird die Coverage.json-Datei mit allen Coverage-Informationen ausgegeben.

  7. Es ist Zeit, den HTML-Bericht daraus zu generieren. Gehen Sie zu Ihrem coverage.json Verzeichnis und das unter Befehl ausführen, und drücken Sie die Eingabetaste:

    istanbul report 
    
  8. Dies würde ein Verzeichnis erzeugen Berichterstattung genannt, und in ihm würden Sie finden lcov.info Dateien, die Sie es passieren kann Sonarqube oder öffnen Sie die HTML-Datei, um die Ergebnisse zu sehen.

Glückliche Codeabdeckung.