diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 19fa1eddb25893c3024bc9665169d6f47618f4ec..68cb23770a3f5eb413f289d9574344fca7a5311a 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -38,123 +38,151 @@ test_backend 2 15:
   services:
     - postgres:9.6
   stage: test
+  coverage: '/(\d+.\d+) \% covered/'
   script:
     - mkdir /etc/minerva/
     - cp test-db-ci.properties /etc/minerva/db.properties
 
     - mvn -DskipTests=true clean install -pl annotation -am
     - mvn test -pl annotation
+    - awk -F"," '{ instructions += $4 + $5; covered += $5 } END { print covered, "/", instructions, "instructions covered"; print 100*covered/instructions,"% covered" }' annotation/target/site/jacoco/jacoco.csv
 
 test_backend 3 15:
   image: maven:3.6.0-jdk-8
   stage: test
+  coverage: '/(\d+.\d+) \% covered/'
   script:
     - mvn -DskipTests=true clean install -pl CellDesigner-plugin -am
     - mvn test -pl CellDesigner-plugin
+    - awk -F"," '{ instructions += $4 + $5; covered += $5 } END { print covered, "/", instructions, "instructions covered"; print 100*covered/instructions,"% covered" }' CellDesigner-plugin/target/site/jacoco/jacoco.csv
 
 test_backend 4 15:
   image: maven:3.6.0-jdk-8
   stage: test
+  coverage: '/(\d+.\d+) \% covered/'
   script:
     - mvn -DskipTests=true clean install -pl converter -am
     - mvn test -pl converter
+    - awk -F"," '{ instructions += $4 + $5; covered += $5 } END { print covered, "/", instructions, "instructions covered"; print 100*covered/instructions,"% covered" }' converter/target/site/jacoco/jacoco.csv
 
 test_backend 5 15:
   image: maven:3.6.0-jdk-8
   stage: test
+  coverage: '/(\d+.\d+) \% covered/'
   script:
     - mvn -DskipTests=true clean install -pl converter-graphics -am
     - mvn test -pl converter-graphics
+    - awk -F"," '{ instructions += $4 + $5; covered += $5 } END { print covered, "/", instructions, "instructions covered"; print 100*covered/instructions,"% covered" }' converter-graphics/target/site/jacoco/jacoco.csv
 
 test_backend 6 15:
   image: maven:3.6.0-jdk-8
   stage: test
+  coverage: '/(\d+.\d+) \% covered/'
   script:
     - mvn -DskipTests=true clean install -pl converter-CellDesigner -am
     - mvn test -pl converter-CellDesigner
+    - awk -F"," '{ instructions += $4 + $5; covered += $5 } END { print covered, "/", instructions, "instructions covered"; print 100*covered/instructions,"% covered" }' converter-CellDesigner/target/site/jacoco/jacoco.csv
 
 test_backend 7 15:
   image: maven:3.6.0-jdk-8
   services:
     - postgres:9.6
   stage: test
+  coverage: '/(\d+.\d+) \% covered/'
   script:
     - mkdir /etc/minerva/
     - cp test-db-ci.properties /etc/minerva/db.properties
     - mvn -DskipTests=true clean install -pl converter-SBGNML -am
     - mvn test -pl converter-SBGNML
+    - awk -F"," '{ instructions += $4 + $5; covered += $5 } END { print covered, "/", instructions, "instructions covered"; print 100*covered/instructions,"% covered" }' converter-SBGNML/target/site/jacoco/jacoco.csv
 
 test_backend 8 15:
   image: maven:3.6.0-jdk-8
   stage: test
+  coverage: '/(\d+.\d+) \% covered/'
   script:
     - mvn -DskipTests=true clean install -pl converter-sbml -am
     - mvn test -pl converter-sbml
+    - awk -F"," '{ instructions += $4 + $5; covered += $5 } END { print covered, "/", instructions, "instructions covered"; print 100*covered/instructions,"% covered" }' converter-sbml/target/site/jacoco/jacoco.csv
 
 test_backend 9 15:
   image: maven:3.6.0-jdk-8
   stage: test
+  coverage: '/(\d+.\d+) \% covered/'
   script:
     - mvn -DskipTests=true clean install -pl model -am
     - mvn test -pl model
+    - awk -F"," '{ instructions += $4 + $5; covered += $5 } END { print covered, "/", instructions, "instructions covered"; print 100*covered/instructions,"% covered" }' model/target/site/jacoco/jacoco.csv
 
 test_backend 10 15:
   image: maven:3.6.0-jdk-8
   stage: test
+  coverage: '/(\d+.\d+) \% covered/'
   script:
     - mvn -DskipTests=true clean install -pl model-command -am
     - mvn test -pl model-command
+    - awk -F"," '{ instructions += $4 + $5; covered += $5 } END { print covered, "/", instructions, "instructions covered"; print 100*covered/instructions,"% covered" }' model-command/target/site/jacoco/jacoco.csv
 
 test_backend 11 15:
   image: maven:3.6.0-jdk-8
   stage: test
+  coverage: '/(\d+.\d+) \% covered/'
   script:
     - mvn -DskipTests=true clean install -pl pathvisio -am
     - mvn test -pl pathvisio
+    - awk -F"," '{ instructions += $4 + $5; covered += $5 } END { print covered, "/", instructions, "instructions covered"; print 100*covered/instructions,"% covered" }' pathvisio/target/site/jacoco/jacoco.csv
 
 test_backend 12 15:
   image: maven:3.6.0-jdk-8
   services:
     - postgres:9.6
   stage: test
+  coverage: '/(\d+.\d+) \% covered/'
   script:
     - mkdir /etc/minerva/
     - cp test-db-ci.properties /etc/minerva/db.properties
     - mvn -DskipTests=true clean install -pl persist -am
     - mvn test -pl persist
+    - awk -F"," '{ instructions += $4 + $5; covered += $5 } END { print covered, "/", instructions, "instructions covered"; print 100*covered/instructions,"% covered" }' persist/target/site/jacoco/jacoco.csv
 
 test_backend 13 15:
   image: maven:3.6.0-jdk-8
   services:
     - postgres:9.6
   stage: test
+  coverage: '/(\d+.\d+) \% covered/'
   script:
     - mkdir /etc/minerva/
     - cp test-db-ci.properties /etc/minerva/db.properties
     - mvn -DskipTests=true clean install -pl reactome -am
     - mvn test -pl reactome
+    - awk -F"," '{ instructions += $4 + $5; covered += $5 } END { print covered, "/", instructions, "instructions covered"; print 100*covered/instructions,"% covered" }' reactome/target/site/jacoco/jacoco.csv
 
 test_backend 14 15:
   image: maven:3.6.0-jdk-8
   services:
     - postgres:9.6
   stage: test
+  coverage: '/(\d+.\d+) \% covered/'
   script:
     - mkdir /etc/minerva/
     - cp test-db-ci.properties /etc/minerva/db.properties
     - mvn -DskipTests=true clean install -pl rest-api -am
     - mvn test -pl rest-api
+    - awk -F"," '{ instructions += $4 + $5; covered += $5 } END { print covered, "/", instructions, "instructions covered"; print 100*covered/instructions,"% covered" }' rest-api/target/site/jacoco/jacoco.csv
 
 test_backend 15 15:
   image: maven:3.6.0-jdk-8
   services:
     - postgres:9.6
   stage: test
+  coverage: '/(\d+.\d+) \% covered/'
   script:
     - mkdir /etc/minerva/
     - cp test-db-ci.properties /etc/minerva/db.properties
     - mvn -DskipTests=true clean install -pl service -am
     - mvn test -pl service
+    - awk -F"," '{ instructions += $4 + $5; covered += $5 } END { print covered, "/", instructions, "instructions covered"; print 100*covered/instructions,"% covered" }' service/target/site/jacoco/jacoco.csv
 
 build_war:
   image: maven:3.6.0-jdk-8