Indledning

Dette dokument beskriver en testvejledning for KIDS indlæseren. Det forudsættes at projektet er bygget og installeret, og med denne vejledning kan man således afvikle tests og derved kontrollere robustheden.

KIDS indlæseren benytter i vid udstrækning docker til test, for at kunne teste så vidt muligt med de rigtige afhængigheder.

Det overordnede setup er beskrevet i NSP Continuous Integration & Delivery, og det er herved muligt at starte en specifik KIDS indlæser med lokalt kørende database således at hele flowet kan afprøves lokalt.

Unittest

Der anvendes unittests i KIDS indlæseren ved brug af JUnit.

KIDS indlæserens unittest-setup er specielt da der benyttes TestContainers, således at unittests kan ramme en rigtig lokalt kørende mariadb database kørende i docker (https://www.testcontainers.org).

Unittests kan køres ved at eksekvere

mvn test

Unittests med en kørende MariaDb

Idet KIDS indlæseren vil ikke selv migrere databaseskemaet men til testen er det blevet godkendt at unittests selv starter en mariadb database via docker, og tester ved brug af den.

TestContainers er et java bibliotek som tillader programmatisk instruering af docker starter op, og herved starter en ny tom mariadb container op, som applikationen kan køre databasemigreringer mod, og herefter benytte i alle unittests. 

For eksempel se https://svn.nspop.dk/svn/importers/kidsindlaeser/trunk/src/test/java/dk/nsi/sdm/kids/BaseTest.java klassen i KIDS indlæser-projektet.

Codecoverage

Efter afvikling af unit-tests genereres en testrapport med Maven-plugin’et JaCoCo. Rapporten kan ses ved at åbne følgende fil i en browser target/site/jacoco/index.html.

Rapporten dækker selve KIDS indlæseren. Codecoverage er minimum 79%. Der henvises til JaCoCo testrapporten for yderligere information vedr. coverage. Bemærk at JaCoCo ikke kan verificere linjer, der kaster exceptions, og at sådanne linjer altid vil stå som missed.

Pr. 26. november 2021 er coverage 85%:


  • No labels