Page History
| Navitabs | ||||
|---|---|---|---|---|
| ||||
Indhold
Table of Contents
Introduktion
Formål
Formålet med nærværende dokument er at beskrive de tests, som er udviklet og afviklet forud for release af Svareksponeringsservice XDS-adaptere. Desuden beskrives generering af code coverage-rapporter.
...
Generering af code coverage-rapporter
Manuel test af alarm endpoints på lokal service
Det følgende beskriver, hvordan man manuelt aftester (aktivere fejlen i) alarmen, der findes på alarm endpointet for svareksponeringsservice XDS Registry Adapter.
Alarm endpoint: curl -v http://localhost:8081/sxa-documentprovider/alarm
| DocumentProviderServiceHealthIndicator | Start compose docker stop development-sxa-labreportservicestub-1 Kald alarm endpoint Resultat: Servicen har fejlet 6 gange. Den må ikke fejle mere end 5 gange i en given periode. |
| Wiki Markup |
|---|
Code coverage kontrolleres ved brug af Cobertura, som foreslået af NSP Husregler (for leverandører). Code coverage-rapporter fra et release er fastholdt i tilhørende \[Testrapport\]. |
| Anchor | ||||
|---|---|---|---|---|
|
Code coverage analyse er foretaget i projektet med anvendelse af Maven Cobertura plugin.
| Anchor | ||||
|---|---|---|---|---|
|
| Anchor | ||||
|---|---|---|---|---|
|
| Anchor | ||||
|---|---|---|---|---|
|
| Anchor | ||||
|---|---|---|---|---|
|
| Anchor | ||||
|---|---|---|---|---|
|
Code coverage-rapport omfattende alene unittests genereres ved at gennemføre følgende trin:
...
- Genereret code coverage-rapport kan nu læses i folderen target/site/cobertura
| Anchor | ||||
|---|---|---|---|---|
|
| Anchor | ||||
|---|---|---|---|---|
|
| Anchor | ||||
|---|---|---|---|---|
|
| Anchor | ||||
|---|---|---|---|---|
|
| Anchor | ||||
|---|---|---|---|---|
|
En samlet code coverage-rapport omfattende både unittests og integrationstests kan genereres ved forberedelse og gennemførsel af trin beskrevet i det efterfølgende.
| Anchor | ||||
|---|---|---|---|---|
|
Cobertura skal installeres på WildFly og Ant installeres mhp. anvendelse ved fletning af code coverage-rapporter fra unittest og integrationstests.
De anvendte versioner er:
...
- Cobertura etableres, ved enten:
- Download fra fx sourceforge (https://sourceforge.net/projects/cobertura/) og udpakning
- Kildekode hentes fra https://github.com/cobertura/cobertura/releases og bygges
- Ant installeres
- Download fra http://archive.apache.org/dist/ant/binaries/apache-ant-1.9.4-bin.tar.gz
I Ant's lib folder bør følgende jars være tilgængelige
Jar
Fremskaffelse
asm-5.0.1.jar
Indeholdende i Cobertura-2.1.1-bin-tar
asm-analysis-5.0.1.jar
Indeholdende i Cobertura-2.1.1-bin-tar
asm-commons-5.0.1.jar
Indeholdende i Cobertura-2.1.1-bin-tar
asm-tree-5.0.1.jar
Indeholdende i Cobertura-2.1.1-bin-tar
asm-util-5.0.1.jar
Indeholdende i Cobertura-2.1.1-bin-tar
cobertura-2.1.1.jar
Indeholdende i Cobertura-2.1.1-bin-tar
commons-lang3-3.3.2.jar
Indeholdende i Cobertura-2.1.1-bin-tar
oro-2.0.8.jar
Indeholdende i Cobertura-2.1.1-bin-tar
slf4j-api-1.7.5.jar
Indeholdende i Cobertura-2.1.1-bin-tar
slf4j-log4j12-1.6.4.jar
Bør være i lokal m2 folder
log4j-1.2.16.jar
Bør være i lokal m2 folder
- Installation af Cobertura modul på WildFly:
Følgende Cobertura afhængigheder kopieres fra cobertura-2.1.1-bin.tar.gz til <wildfly folder>/modules/net/sourceforge/cobertura/main
Jar
Destination
<arkiv>/cobertura-2.1.1.jar
<modul-main>/
<arkiv>/lib/asm-tree-5.0.1.jar
<modul-main>/lib/
<arkiv>/lib/asm-commons-5.0.1.jar
<modul-main>/lib/
<arkiv>/lib/asm-util-5.0.1.jar
<modul-main>/lib/
<arkiv>/lib/asm-analysis-5.0.1.jar
<modul-main>/lib/
<arkiv>/lib/oro-2.0.8.jar
<modul-main>/lib/
En module.xml fil skabes i samme main mappe med følgende indhold:
Code Block <?xml version="1.0" encoding="UTF-8"?> <module xmlns="urn:jboss:module:1.1" name="net.sourceforge.cobertura"> <resources> <resource-root path="."/> <resource-root path="cobertura-2.1.1.jar"/> <resource-root path="lib/asm-tree-5.0.1.jar"/> <resource-root path="lib/asm-commons-5.0.1.jar"/> <resource-root path="lib/asm-util-5.0.1.jar"/> <resource-root path="lib/asm-analysis-5.0.1.jar"/> <resource-root path="lib/oro-2.0.8.jar"/> </resources> <dependencies> <module name="asm.asm" /> <module name="javax.servlet.api" /> <module name="org.slf4j" /> </dependencies> </module>Default udskrives coveragefilen (cobertura.ser) i <wildfly folder>/bin mappen. Ønskes filen udskrevet til en anden mappe skabes filen cobertura.properties i main mappen med indeholdet:
Code Block net.sourceforge.cobertura.datafile=<sti>/cobertura.ser
For at få Cobertura til at skrive coverage af integrationstests, er der to muligheder:
Metode
Installation og brug
coberturaFlush.war servicen
- coberturaFlush.war er at finde i Cobertura-2.1.1-bin-tar
Før kopiering til <WildFly>/standalone/deployments skal følgende linje tilføjes til coberturaFlush.war/META-INF/MANIFEST.MF:
Code Block Dependencies: net.sourceforge.cobertura
- Efter ændring deployeres coberturaFlush.war og servicen udstiller ”<host>/coberturaFlush/flushCobertura”. Kald til denne service ved f.eks. Curl får Cobertura til at skrive coverage filen. (Se trin 3.3).
Genstart af WildFly - Cobertura skriver automatisk coverage fil ved genstart af WildFly
- Denne mulighed kræver følgende ændring i <wildfly folder>/bin/standalone.conf med tilføjelse af:
Code Block JAVA_OPTS="$JAVA_OPTS -Djboss.shutdown.forceHalt=false"
Bemærk at når WildFly startes med instrumenteret kode, da startes "optagelse" af code coverage. Ved kald til coberturaFlush servicen skabes et billede af hvordan coverage ser ud nu. Dette billede skrives til <wildfly>/bin/cobertura.ser, hvor filen bliver additivt opdateret, hvis filen findes i forvejen, eller skabes, hvis den ikke findes. "Optagelse" af code coverage bliver først reset ved genstart af WildFly og fjernelse af <wildfly>/bin/cobertura.ser.
- Genstart af WildFly
| Anchor | ||||
|---|---|---|---|---|
|
Code coverage-rapport omfattende både unittests og integrationstests genereres ved at gennemføre følgende trin:
...