Possiedo un framework di automazione che utilizza un'attività grunt per eseguire più file spec. Alcuni vengono eseguiti utilizzando una suite predefinita, altri utilizzano convenzioni di denominazione dei file. Ogni file spec ha una media di un blocco "descriva", ognuno con più blocchi "it".Riepiloga i risultati del rapportatore su più file spec.
Attualmente sto usando il gelsomino-spec-giornalista che dà risultati utili e dettagliati dopo ogni file spec, che assomiglia a:
------------------------------------
[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
goniometro mi dà abbastanza inutile output della console sintesi, dopo tutto il rapporti di gelsomino che fa riferimento a taskID e liste passa + errori. Questo è ciò che il riassunto goniometro assomiglia:
....
[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.
mio problema è che voglio vedere un riassunto di tutte le spec file, non taskIds, solo per specifiche falliti, e solo dopo aver fatto tutto in esecuzione . L'MVP sarebbe solo i nomi dei file spec falliti in un elenco o scritti in un file in un formato di facile lettura (xml, html, ecc.). Prossima iterazione avrei le descrizioni di blocco "descrivi" e "it", i codici di errore e il link saucelabs accanto a ogni errore simile al reporter di gelsomino.
Normalmente ho centinaia di file spec in un singolo lavoro, e dover sfogliare tutti i singoli risultati solo per rintracciare quale file spec è fallito è abbastanza fastidioso (poiché sento che un sommario generato automaticamente dovrebbe avere quell'informazione). Sto letteralmente dovendo fare un ctrl + f sull'output della console per "errori", solo per vedere quali specifiche hanno fallito. Voglio evitare di andare ai saucelab per la lista dei fallimenti, a causa di come le nostre attività lavorative sono organizzate attraverso Jenkins. L'output della console dovrebbe essere una prima fonte/riferimento facile per un elenco di guasti una volta che un lavoro è stato eseguito in esecuzione.
L'ambito di ogni reporter di terze parti sembra andare solo fino al livello del file spec. Dopo che ogni file spec è stato eseguito, viene segnalato, quindi passa a quello successivo che sovrascrive il report precedente. Apro il report HTML o XML e ha sempre solo i risultati di un file spec. Non riesco a portare alcuna informazione in un riassunto per più file spec. Ho modificato le impostazioni di "consolida (Tutto)" e nessuno sembra aver creato un rapporto per tutti i file spec. Sembrano considerare solo un singolo file alla volta.
Ho sperimentato con i seguenti giornalisti:
gelsomino-reporter
gelsomino-spec-giornalista
goniometro-jasmine2-html-giornalista
gelsomino-JSON-test-giornalista
Sono stato in grado di manipolare direttamente il codice "rapporto Sommario" del goniometro per darmi la maggior parte di ciò che voglio (tranne che per il link saucelabs), ma questo non è l'ideale dato che dovrei convincerli ad adottarlo. Ecco come appare il mio sommario:
********************
* 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)
********************
Mi manchi qualcosa usando quei giornalisti di gelsomino? Il mio framework non è progettato per funzionare con quei giornalisti nel modo che voglio? Devo solo convincere i ragazzi del goniometro a rinforzare il loro giornalista sommario con alcune opzioni?
Penso che la soluzione migliore potrebbe essere quella di fare una richiesta di pull su uno di quei reporter per le opzioni di formattazione che si desidera. Dubito che convincerai @Jmr a fare questo tipo di cambiamento per te. – MBielski