2016-02-05 21 views
5

Esiste un reporter di karma che può essere utilizzato per generare un file results.xml che è compatibile con il plug-in Generic Test Coverage di sonar? O in alternativa un parser per il file junit che viene prodotto da karma-junit-reporter e che funzionerà con il plugin generico?Come ottenere rapporti xml javascript junit javascript nel sonar

Sto usando SonarQube 5.3 e Karma/Jasmine

voglio importare i rapporti JUnit che provengono dal karma in SonarQube ma non può vedere un modo per farlo facilmente. Qualcosa di simile https://www.npmjs.com/package/mocha-sonar-generic-test-coverage per karma

FYI ho visto karma-junit-sonarqube-reporter (https://www.npmjs.com/package/karma-junit-sonarqube-reporter), ma che sembra aspettarsi che il nome del test per abbinare il percorso del file che è troppo restrittiva per me. karma-sonarqube-unit-reporter sembra essere incompiuta grunt-karma-sonar sembra basarsi su jstestdriver che è deprecato

risposta

5

sono riuscito a raggiungere questo obiettivo facendo quanto segue.

Per ottenere javascript rapporti JUnit in sonar

  1. Trovare e scaricare i sonar-karma-test-report-plugin-1.0.0.4.jar che non è disponibile tramite il centro di aggiornamento
  2. file jar messo in /usr/local/Cellar/sonar/5.3/libexec/extensions/plugins e riavviare il sonar
  3. Dillo karma di omettere il nome del browser

    junitReporter: { 
         useBrowserName: false 
    } 
    
  4. Ottieni Karma per cre ha mangiato un file JUnit XML attraverso il normale karma-JUnit-giornalista e farlo chiamare il file TESTS-xunit.xml (ho avuto il file chiamato test-results.xml e sonar non sarebbe rilevarlo WTF)

  5. Nel file sonar-project.properties set sonar.javascript.karmajstestdriver.reportsPath=reports/js/unit-components/results/

  6. chiama sonar-runner

Sonar richiede il percorso del file di prova per elaborare il report. Jasmine non lo rende disponibile per il giornalista. La mia comprensione è che il plug-in del sonar itera su un file xml e trova il nome della classe per ogni test che ha il nome del test (ovvero my cool tests) e sostituisce una stringa per cambiarlo nella posizione del file