Page History
| Navitabs | ||||
|---|---|---|---|---|
| ||||
| Anchortoc | ||
|---|---|---|
|
REVISION HISTORY
...
NUMBER
...
DATE
...
DESCRIPTION
...
NAME
...
0.1
...
2012-11
...
HT
Contents
- Introduktion 1
- Udviklings miljø 1
- Byg af STS 1
- Unit tests 1
- Code coverage 1
- Udviklingsserver 2
- Integration test 2
- Certifikater 2
...
|
Dokumenthistorik
Version | Dato | Ansvarlig | Beskrivelse |
| 1 | 6.7.2018 | KSR | Opdateret på baggrund af fuldmagtsservice |
| 2 | 14.9.2018 | KSR | Opdateret beskrivelse mht. kørsel af tests med coverage-måling. Tilføjet mulighed for kørsel af integrationstests uden unittests. |
| 3 | 13.12.2018 | KSR | Beskrivelse af release |
Introduktion
Dette dokument indeholder beskrivelse af diverse udviklings aspekter af STS version 2.4.1.
...
Udviklingsmiljø
STS kodebasen er et Maven 3 projekt, med en rod POM yderst og en række undermoduler, hvor stshvor sts-server er server er det modul som producerer et deployerbart WAR-arkiv:
...
.
Maven projektet kan umiddelbart åbnes med nyere versioner af IntelliJ IDEA. For Eclipse anvendere udføres følgende kommando for at få genereret projekter, der kan importeres i Eclipse:
mvn eclipse:eclipse -DdownloadJavadocs -
...
DdownloadSources Byg af STS
Byg af STS understøttes af de normale Maven goals, dvs. for at bygge et STS WAR-arkive udføres
mvn package
...
Unittest
Unit tests køres som del af bygget, eller med:
mvn test
...
Integrationstest
Det er muligt at eksekvere integrationstest mod en allerede deployet sts med kommandoen
mvn -Pintegration verify -Dsts.url=http://test1-cnsp.ekstern-test.nspop.dk:8080Kørsel af integrationstests uden unittests
Med tilføjelse af parameteren -Dunittests.skip=true er det endda muligt at springe unittests over og nøjes med integrationstests. Dette kan specielt være bekvemt i forbindelse med deployment verifikation hos Netic.
Eksempel:
mvn -Pintegration verify -Dsts.url=http://test1-cnsp.ekstern-test.nspop.dk:8080 -Dunittests.skip=trueKørsel af integrationstests uden anvendelse af fuldmagtsservice hos Nemlogin (nyt i 2.5.6)
Fuldmagtsservicen hos nemlogin kan være lidt ustabil i test. Det er derfor nu muligt aktivt at slå disse fra og kun afvikle de øvrige tests.
Eksempel:
mvn -Pintegration verify Code coverage
Til unit test code coverage benyttes cobertura. For at generere coverage data kan følgende kommando benyttes:
...
| vagrant up |
|---|
...
| mvn package vagrant provision |
|---|
...
Integration test
Der findes ligeledes en integrations test suite. Denne suite udføres med en deployeret STS service. Den tester i stor udstrækning det, som allerede er testet i unit test, blot her mod den deployerede instans.
Testen udføres med:
| mvn -Pintegration test |
|---|
...
-Dsts.url=http://...
test1-cnsp.ekstern-test.nspop.dk:8080 -Dprocurationtests.skip=trueDocker udviklingsserver
En kørende udviklingsserver kan sættes op via docker med kommandoen:
mvn packagedocker-compose up &
mvn -Pdocker verify
Her vil maven kommandoen bygge sts, deploye den til docker, udføre integrationstests mod den, samt undeploye igen.
Det er endvidere muligt "manuelt" at deploye til docker ved kommandoen
mvn -Pdocker wildfly:deploy-onlymvn -Pdocker wildfly:undeployDette kan f.eks. være nyttigt i forbindelse af kørsel af en enkelt integrationstest i en IDE.
Code coverage
Code coverage kan undersøges med brug af open-clover med følgende maven-kommando:
mvn clean clover:setup test clover:aggregate clover:cloverCertifikater
Testene anvender certifikater, der stammer fra Seal-afhængigheden. Disse certifikater har udløbsdatoer et certifikat har typisk en levetid på 2 år. og udløbsdatoer og derfor skal man være opmærksom på at tests for et givet, historisk release af STS'en vil fejleaf STS’en kan fejle.
Om nødvendigt kan testene disables. Dette frarådes dog stærkt ved nye releases.
Release procedure
I forbindelse med releases af STS opdateres filen changes.txt med en kort beskrivelse af det rettede.
Selve releaset foretages med mavens release plugin
mvn release:preparesom sørger for at lave subversion tags, samt relevante opdateringer af pom-filer.