Page History
...
Dette dokument beskriver en kort byggevejledning og derudover en testvejledning for Det testvejledning for Det Fælles Stamkort 1.5-servicen. Der anvises også en metode til mere detaljeret verifikation og fejlfinding.Projektet bygges med Maven og kræver Java 8 samt en MariaDB-installation for at kunne afvikle testsDet forudsættes at projektet er bygget og installeret, og med denne vejledning kan man således afvikle integrations- og performancetests og derved kontrollere robustheden.
Ændringslog
Version | Dato | Ændring | Ansvarlig |
---|---|---|---|
2.0.0 | 2018-08-27 | Initialt dokument | Trifork |
Kort byggevejledning
For blot at bygge projektet og dets deployable (war-fil) anvendes følgende Maven kommando:
mvn clean install -DskipTests
Bemærk at kommandoen skipper unit-tests og integrationstests, men Maven-eksekveringen starter alligevel en lokal Wildfly-server op, deployer servicen og lukker Wildfly-serveren ned igen. Denne sideeffekt skal blot ignoreres.
Projektets deployables ender i target-mappen under de respektive moduler.
Afvikling af unit-tests
For at afvikle unit-tests skal en MariaDB-database være tilgængelig.
I udviklingssammenhæng og ved unit-tests kan man nøjes med én databasebruger og én database. Disse kan oprettes vha. scripterne recreate_service_user.sql og recreate_database.sql som er lokaliseret under fsk-service/etc/db/. Derefter kan Flyway automatisk initialisere databasen under Maven byg.
Datasourcen i testafviklingen auto-konfigureres vha. Spring Boot som anvender database-credentials fra fsk-service/src/test/resources/application.properties. De default værdier matcher værdierne i de førnævnte SQL-scripts.
Projektet skal være fuldt bygget for at lokale dependencies er på plads, og dernæst kan unit tests afvikles med følgende Maven kommando:
mvn clean test
Der genereres desuden en testrapport.
Afvikling af integrationstests
Integrationstest kan både afvikles på en lokal Wildfly-server og på et eksternt miljø.
Selve integrationstesten består af et kald til OnDemand webservicen.
Lokal afvikling
For at afvikle integrationstests lokalt anvendes følgende Maven kommando:
mvn clean install
Bemærk at dette først afvikler unit-tests.
Når Maven når til integration-test-fasen starter den selv en Wildfly-server op, hvor den automatisk installerer og deployer følgende ting:
- Inkluderer servicens Wildfly-modul med konfigurationsfiler
- Deployer MariaDB database-driver
- Installerer 2 datasources, der begge peger på samme database som beskrevet under afvikling af unit-tests
- Deployer selve servicen fsk-service.
Afvikling mod eksternt miljø
...
2.0.9 | 2019-25-09 | Ajourført | Trifork |
Integrationstests
Integrationstest skal afvikles mod den deployede komponent med test-opsætning.
Selve integrationstesten består af et kald til OnDemand webservicen.
Når servicens er installeret og deployet, kan korrekt deployment verificeres ved at køre integrationstestene. Dette gøres ved at anvende følgende Maven-kommando, som aktiverer Maven-profilen extITs specificerer miljø:
For opsætningen af miljøet er der lavet 3 maven profiler.
mvn verify -pl fsk-test -PextITs -P<miljø>
Der er oprettet en test person i DTG med cpr. 0509900267. Denne persons FSK stamkort docid kan så benyttes i testen se nedenstående tabel for de konkrete værdier af docid.
miljø | docid |
---|---|
dev | urn:sds:fsk:stamkort:00000000-0000-0000-0000-000000000003 |
test1 | 1.2.208.176.43210.8.10.12^3f718e08-7940-4fcd-a460-1769ac82416c |
test2 | 1.2.208.176.43210.8.20.12^317b5758-90c7-45eb-be03-1aa7dedb4121 |
Ønsker man at angive host, port og docid direkte på komandolinjen kan man også gøre dette.
mvn verify -pl fsk-test -PextITs -DFSK_TEST_HOST=<host> -DFSK_TEST_PORT=<port> -DFSK_TEST_DOCID=<docid>
I ovenstående kommando skal <host> erstattes med adressen på det eksterne miljømiljøet, <port> med portnummeret, servicen svarer på (typisk 8080), og <docid> med et dokument-id, som findes i RegistryIndex-tabellen i det pågælende eksterne testmiljøs FSK database.
Bemærk at dette kræver, at projektet er fuldt bygget, for at lokale dependencies er på plads.Bemærk også at Maven-eksekveringen alligevel starter en lokal Wildfly-server op, deployer servicen og lukker Wildfly-serveren ned igen. Denne sideeffekt skal blot ignoreres.
Hvis man er uheldig og kommer til at afvikle testen med f.eks. Java 11 får man en fejl om at attributten soapenv:mustUnderstand ikke må være der. Det kan få en til og tro at det er FSK og eller testen der er noget i vejen med. Problemet er dog højest sandsynligt at man ikke anvender Java 8 når man afvikler testen.
Der er tilføjet en bunke integrationstests til at teste hjørnetilfælde mellem SKR og FSK. De tager lidt tid at køre og kan derfor deaktiveres med -DSKIP_CORNER_CASE_TESTS=true
Codecoverage
Efter afvikling af unittests genereres en testrapport med Maven-plugin’et JaCoCo. Rapporten kan ses ved at åbne følgende fil i en browser:
...