Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Navitabs
rootLaboratoriesvarservice (SXA) - Leverancebeskrivelse
includeroottrue


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
_Toc462245136
_Toc462245136
Code coverage for unittests

Code coverage analyse er foretaget i projektet med anvendelse af Maven Cobertura plugin.

Anchor
_Toc417550117
_Toc417550117
Anchor
_Toc434997540
_Toc434997540
Anchor
_Toc435777515
_Toc435777515
Anchor
_Toc449964616
_Toc449964616
Anchor
_Toc462245137
_Toc462245137
Code coverage for unittests

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
_Toc417550118
_Toc417550118
Anchor
_Toc434997541
_Toc434997541
Anchor
_Toc435777516
_Toc435777516
Anchor
_Toc449964617
_Toc449964617
Anchor
_Toc462245138
_Toc462245138
Code coverage for unittests og integrationstests

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
_Toc417550119
_Toc417550119
Forberedelse

Cobertura skal installeres på WildFly og Ant installeres mhp. anvendelse ved fletning af code coverage-rapporter fra unittest og integrationstests.
De anvendte versioner er:

...

  1. Cobertura etableres, ved enten:
    1. Download fra fx sourceforge (https://sourceforge.net/projects/cobertura/) og udpakning
    2. Kildekode hentes fra https://github.com/cobertura/cobertura/releases og bygges
  2. Ant installeres
    1. Download fra http://archive.apache.org/dist/ant/binaries/apache-ant-1.9.4-bin.tar.gz
    2. 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

  3. Installation af Cobertura modul på WildFly:
    1. 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/

    2. 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>
    3. 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
    4. For at få Cobertura til at skrive coverage af integrationstests, er der to muligheder:

      Metode

      Installation og brug

      coberturaFlush.war servicen


      1. coberturaFlush.war er at finde i Cobertura-2.1.1-bin-tar
      2. 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
      3. 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
      1. Cobertura skriver automatisk coverage fil ved genstart af WildFly
      2. 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.

    5. Genstart af WildFly


Anchor
_Toc417550120
_Toc417550120
Gennemførelse

Code coverage-rapport omfattende både unittests og integrationstests genereres ved at gennemføre følgende trin:

...