Cosa sto facendo? Attualmente sto lavorando alla creazione di una linea continua di integrazione/consegna per applicazioni front-end. Stiamo pianificando di utilizzare SonarQube come strumento di qualità del codice e di voler importare i risultati del test junit/la copertura del codice in SONAR per ulteriori analisi.l'importazione di test junit javascript xml su SONAR utilizzando jstestdriver non riesce
Sono stato in grado di importare correttamente il report di copertura del codice javascript su SONAR. Usiamo Gulp/Karma/PhantomJS/Jasmine ecc. E usiamo la copertura Karma/giornalisti Junit per generare risultati di test. Il nome del file di test Junit è TEST-xunit.xml.
Dove sono bloccato? Ho bisogno del tuo aiuto/guida esperta sull'importazione dei risultati dei test Javascript su SONAR. Ho provato diverse cose ma in qualche modo non sono riuscito a importare le sorgenti/i risultati delle prove unitarie su SONAR.
Che cosa ho provato? In precedenza stavamo usando SONAR Runner 2.3, SONAR Qube 4.5/Javascript plugin 2.2 e in grado di importare statistiche di alto livello di Junit come test passati/falliti ecc. Tuttavia, non siamo stati in grado di navigare verso i singoli test per vedere quale test superato/fallito .
Sulla ricerca ulteriore, ha notato che il plugin di Javascript 2.3 ha aggiunto più messaggistica per lo scenario se non trova fonti di test. Inoltre, ci sono state altre dipendenze per cui SONAR aggiornato a 5.0. Testato con SONAR runner 2.4 e osservato i seguenti messaggi. Attualmente, anche le statistiche di alto livello non vengono importate.
JSTestDriverSensor.java codice è da plug-in SONAR Javascript su GitHub)
LOG.warn("Test result will not be saved for test class \"{}\", because SonarQube associated resource has not been found using file name: \"{}\"",
getUnitTestClassName(classKey), getUnitTestFileName(classKey));
sonar-runner.properties generati dal plug-in SONAR gulp (utilizza SONAR Runner 2,3)
sonar.projectBaseDir=C:/xxxxx/homepage2
sonar.host.url=http://xxxxx:9000/sonarqube/
sonar.jdbc.url=jdbc:mysql:// xxxxx:3306/sonar
sonar.jdbc.username= xxxxx
sonar.jdbc.password= xxxxx
sonar.projectKey=homepage:0.0.0
sonar.projectName=homepage
sonar.projectVersion=0.0.0
sonar.sources=src/app,src/components
sonar.exclusions=src/**/*spec.js
sonar.tests=test
sonar.language=js
sonar.sourceEncoding=UTF-8
sonar.javascript.lcov.reportPath=reports/coverage/lcov.info
sonar.javascript.jstestdriver.reportsPath=reports/unit
Ho anche provato l'installazione separata di SONAR runner 2.4 ma continuo a ricevere gli stessi messaggi di errore.
Domanda? 1. Deve esserci qualcosa che sto trascurando e che in qualche modo non è in grado di determinare cosa potrebbe causare questo. Penso che sto impostando il percorso della directory di test in modo errato o che JSTestDriverSensor interpreti erroneamente il file di directory di test. Suggerimenti? 2. Per iniziare, voglio solo importare un file xml di esempio junit per vedere se viene importato con successo. Dopo di ciò, posso modificare l'output del generatore di karma junit in modo che corrisponda all'ingresso junit xml. Hai bisogno di alcuni esempi di riferimento qui.
Allegare alcuni registri. Ho modificato junit xml per impostare diversi nomi di classi per vedere se JsTestDriverSensor lo trova. Ma non lo è!
[23:31:24] 23:31:24.122 DEBUG - Language of file 'src/app/main/textOverride.controller.js' is detected to be 'js'
23:31:24.122 DEBUG - Language of file 'src/app/main/main.routes.js' is detected to be 'js'
23:31:24.123 DEBUG - Language of file 'test/app/main/testSpec.js' is detected to be 'js'
[23:31:24] 23:31:24.138 DEBUG - Language of file 'src/components/navbar/navbar.controller.js' is detected to be 'js'
[23:31:24] 23:31:24.169 INFO - 7 files indexed
[23:31:26] 23:31:26.632 INFO - Quality profile for js: Sonar way
[23:31:26] 23:31:26.670 DEBUG - Sensors : QProfileSensor -> JavaScriptSquidSensor -> JsTestDriverSensor -> CoverageSensor -> InitialOpenIssuesSensor -> ProjectLinksSensor -> VersionEventsSensor -> FileHashSensor -> SCM Sensor (wrapped) -> CPD Sensor (wrapped)
23:31:26.671 INFO - Sensor QProfileSensor...
[23:31:26] 23:31:26.680 INFO - Sensor QProfileSensor done: 9 ms
23:31:26.680 INFO - Sensor JavaScriptSquidSensor...
[23:31:26] 23:31:26.950 INFO - 6 source files to be analyzed
[23:31:27] 23:31:27.081 INFO - 6/6 source files analyzed
[23:31:27] 23:31:27.113 INFO - Sensor JavaScriptSquidSensor done: 433 ms
[23:31:27] 23:31:27.114 INFO - Sensor JsTestDriverSensor...
23:31:27.114 INFO - Parsing Unit Test run results in Surefire format from folder C:\xxxxx\homepage2\reports\unit
[23:31:27] 23:31:27.176 WARN - Test result will not be saved for test class "app.main.testSpec", because SonarQube associated resource has not been found using file name: "app/main/testSpec.js"
[23:31:27] 23:31:27.177 WARN - Test result will not be saved for test class "src.app.main.testSpec", because SonarQube associated resource has not been found using file name: "src/app/main/testSpec.js"
Dove si trovano i file di test? Sono presenti questi luoghi in cui il sonar è alla ricerca, app/main/testSpec.js? –
sì, è presente in app/main/testSpec.js ... – Sunil
Sto riscontrando un problema simile e ho scoperto che il plug-in non sembra individuare correttamente le risorse di test quando non si trovano nella root di una posizione di test e l'analisi è eseguita su Windows. Stai correndo anche su Windows? – ioscode