Ich habe ein Automatisierungsframework, das eine Grunt-Task verwendet, um mehrere Spezifikationsdateien auszuführen. Einige werden mit einer vordefinierten Suite ausgeführt, andere verwenden Dateinamenskonventionen. Jede Spezifikationsdatei weist einen Durchschnitt von einem "Beschreib" -Block auf, wobei jeder üblicherweise mehrere "It" -Blöcke aufweist.Zusammenfassen der Winkelmesserergebnisse über mehrere Spezifikationsdateien
Ich bin derzeit Jasmin-spec-Reporter verwendet, die nützliche und detaillierte Ergebnisse nach jeder Spec-Datei gibt, die wie folgt aussieht:
------------------------------------
[chrome OS X 10.10 #1-78] PID: 1880
[chrome OS X 10.10 #1-78] Specs: /**/**/jenkins/workspace/Main Suites/tests/User_Management/smoke_student_does_something.js
[chrome OS X 10.10 #1-78]
[chrome OS X 10.10 #1-78] Using SauceLabs selenium server at http://*******
[chrome OS X 10.10 #1-78] Spec started
[chrome OS X 10.10 #1-78]
[chrome OS X 10.10 #1-78] 1 A student can link and unlink to another student account
[chrome OS X 10.10 #1-78] ✓ can link to another student account (33 secs)
[chrome OS X 10.10 #1-78] ✓ can unlink a student account (14 secs)
[chrome OS X 10.10 #1-78]
[chrome OS X 10.10 #1-78] Executed 2 of 2 specs SUCCESS in 46 secs.
[chrome OS X 10.10 #1-78] SauceLabs results available at http://saucelabs.com/jobs/*****************
[launcher] 5 instance(s) of WebDriver still running
Protractor gibt mir eine ziemlich nutzlos Zusammenfassung Konsole ausgegeben, nachdem alle Jasmine berichtet, dass Referenzen von Task-IDs und Listen Bestanden + Fehler ergeben. Dies ist, was die Protractor Zusammenfassung wie folgt aussieht:
....
[launcher] chrome #1-69 passed
[launcher] chrome #1-70 failed 1 test(s)
[launcher] chrome #1-73 passed
[launcher] chrome #1-71 passed
[launcher] chrome #1-75 passed
[launcher] chrome #1-72 passed
[launcher] chrome #1-79 passed
[launcher] chrome #1-74 passed
[launcher] chrome #1-80 passed
[launcher] chrome #1-81 passed
[launcher] chrome #1-82 passed
[launcher] chrome #1-84 passed
[launcher] chrome #1-83 passed
[launcher] chrome #1-85 passed
[launcher] chrome #1-88 passed
[launcher] chrome #1-87 passed
[launcher] chrome #1-86 passed
[launcher] chrome #1-76 passed
[launcher] chrome #1-89 passed
[launcher] chrome #1-90 passed
[launcher] chrome #1-91 passed
[launcher] chrome #1-92 passed
[launcher] chrome #1-78 passed
[launcher] chrome #1-93 passed
[launcher] chrome #1-95 passed
[launcher] chrome #1-77 passed
[launcher] chrome #1-96 passed
[launcher] chrome #1-94 failed 5 test(s)
[launcher] overall: 12 failed spec(s)
[launcher] Process exited with error code 1
>>
Warning: Tests failed, protractor exited with code: 1 Use --force to continue.
Mein Problem ist, dass ich eine Zusammenfassung aller spec Dateien, nicht taskIds, nur für gescheiterte Spezifikationen sehen will, und erst, nachdem sie alles getan, was läuft . Der MVP wäre nur der Name der fehlgeschlagenen Spezifikationsdatei in einer Liste oder in eine Datei in einem leicht lesbaren Format geschrieben (XML, HTML, etc.). Nächste Iteration würde ich die "beschreiben" und "es" -Blockbeschreibungen, Fehlercodes und Saucenlabs Link neben jedem Fehler ähnlich dem Jasmin-Reporter haben.
Normalerweise habe ich Hunderte von Spezifikationsdateien in einem einzigen Job, und alle einzelnen Ergebnisse durchkämmen zu müssen, nur um herauszufinden, welche Spezifikationsdatei fehlgeschlagen ist ziemlich ärgerlich (da ich denke, dass eine automatisch generierte Zusammenfassung diese Information haben sollte). Ich muss buchstäblich eine Strg + F an der Konsolenausgabe für "Fehler" machen, nur um zu sehen, welche Spezifikationen fehlgeschlagen sind. Ich möchte es vermeiden, zu den Soßen für die Fehlerliste zu gehen, weil unsere Jobdurchläufe durch Jenkins organisiert sind. Die Konsolenausgabe sollte eine einfache erste Quelle/Referenz für eine Liste von Fehlern sein, sobald ein Job ausgeführt wurde.
Jeder Bereich eines Drittanbieters scheint nur auf die Spezifikationsebene zu gehen. Nachdem jede Spezifikationsdatei ausgeführt wurde, meldet sie sich und fährt mit der nächsten Datei fort, die den vorherigen Bericht überschreibt. Ich öffne den HTML- oder XML-Bericht, und es hat immer nur die Ergebnisse einer Spezifikationsdatei. Ich kann keine Informationen in eine Zusammenfassung für mehrere Spezifikationsdateien tragen. Ich habe die "konsolidieren (alle)" Einstellungen optimiert, und keiner scheint einen Bericht für alle Spezifikationsdateien zu erstellen. Sie scheinen jeweils nur eine Datei zu betrachten.
Ich habe mit den folgenden Reportern experimentiert:
Jasmin-Reporter
Jasmin-spec-Reporter
Winkelmesser-jasmine2-html-Reporter
Jasmin-json-Test-Reporter
Ich war in der Lage, den "reportSummary" Code des Gradmessers direkt zu manipulieren, um mir das meiste zu geben, was ich will (außer für die Sauce Links), aber das ist nicht ideal, da ich sie überzeugen müsste, es zu übernehmen. So sieht meine Zusammenfassung aus:
********************
* FAILED SPEC(S) *
********************
/Playground/Test_Spec_2.js failed 2 test(s)
can log in once
FAILURE: Expected false to be true, 'Didn't see home page'.
FAILURE: Expected false to be true, 'Didn't see link'.
can log in twice
PASSED
can log in thrice
FAILURE: Expected false to be true, 'Didn't see home page'.
/Playground/Test_Spec_3.js failed 1 test(s)
can login
FAILURE: Expected false to be true, 'Didn't see home page'.
********************
* SUMMARY *
********************
overall: 2/4 failed spec(s)
********************
Fehle ich etwas mit der Verwendung dieser Jasmin-Reporter? Ist mein Framework nicht so konzipiert, dass es mit diesen Reportern so funktioniert, wie ich es möchte? Sollte ich die Winkelmesser nur davon überzeugen, ihren zusammenfassenden Reporter mit einigen Optionen zu verstärken?
Ich denke, Ihre beste Wette könnte sein, eine Pull-Anfrage auf einen dieser Reporter für die Formatierungsoptionen, die Sie wollen. Ich bezweifle, dass du @Jmr überzeugen wirst, diese Art von Veränderung für dich zu machen. – MBielski