diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 3abcbbfd939718b08ea7d9f2cbb6b7dede8d98c0..43cfff7331f2d1731a66f8fbfc491aef6063504b 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -10,8 +10,20 @@ variables:
 stages:
   - test
   - build
+  - quality
   - publish
 
+
+test:
+  stage: test
+  script:
+    - 'jest --ci --reporters=default --reporters=jest-junit'
+  artifacts:
+    when: always
+    reports:
+      junit:
+        - junit.xml
+
 build:
   stage: build
   script:
@@ -41,29 +53,11 @@ publish:
     - tags
   when: manual
 
-mr_sonarqube:
-  stage: test
-  only:
-    - merge_requests
-  image: skilldlabs/sonar-scanner:4.0.0
-  before_script:
-    - export NODE_PATH=$NODE_PATH:npm root -g
-    - npm install -g typescript
-  script:
-    - >
-      sonar-scanner
-      -Dsonar.projectName="ecolyo"
-      -Dsonar.projectVersion=1.0
-      -Dsonar.sourceEncoding=UTF-8
-      -Dsonar.projectBaseDir=.
-      -Dsonar.host.url=${SONAR_URL}
-      -Dsonar.projectKey=${CI_PROJECT_PATH_SLUG}
-      -Dsonar.login=${SONAR_TOKEN}
-
 sonarqube:
-  stage: test
+  stage: quality
   only:
     - dev
+    - merge_requests
   image: skilldlabs/sonar-scanner:4.0.0
   before_script:
     - export NODE_PATH=$NODE_PATH:`npm root -g`
diff --git a/package.json b/package.json
index e8a41224bc9eaa0f6fa6345cdb3d65d5bd551f5e..7d75b97d43e05c0ed0184865ee8b551c90cd234f 100644
--- a/package.json
+++ b/package.json
@@ -70,6 +70,7 @@
     "git-directory-deploy": "1.5.1",
     "husky": ">=1",
     "jest-canvas-mock": "^2.3.0",
+    "jest-junit": "^12.0.0",
     "lint-staged": ">=8",
     "loglevel": "^1.6.6",
     "npm-run-all": "^4.1.5",
diff --git a/yarn.lock b/yarn.lock
index 265fb4380844ff9e16f83a1eb4c2221c6ca30d69..faec81047569d0acae44d7e44679fec5ee75fa4b 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -8349,6 +8349,16 @@ jest-jasmine2@^24.9.0:
     pretty-format "^24.9.0"
     throat "^4.0.0"
 
+jest-junit@^12.0.0:
+  version "12.0.0"
+  resolved "https://registry.yarnpkg.com/jest-junit/-/jest-junit-12.0.0.tgz#3ebd4a6a84b50c4ab18323a8f7d9cceb9d845df6"
+  integrity sha512-+8K35LlboWiPuCnXSyiid7rFdxNlpCWWM20WEYe6IZH6psfUWKZmSpSRQ5tk0C0cBeDsvsnIzcef5mYhyJsbug==
+  dependencies:
+    mkdirp "^1.0.4"
+    strip-ansi "^5.2.0"
+    uuid "^3.3.3"
+    xml "^1.0.1"
+
 jest-leak-detector@^24.9.0:
   version "24.9.0"
   resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-24.9.0.tgz#b665dea7c77100c5c4f7dfcb153b65cf07dcf96a"
@@ -14793,6 +14803,11 @@ xml-name-validator@^3.0.0:
   resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a"
   integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==
 
+xml@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/xml/-/xml-1.0.1.tgz#78ba72020029c5bc87b8a81a3cfcd74b4a2fc1e5"
+  integrity sha1-eLpyAgApxbyHuKgaPPzXS0ovweU=
+
 xregexp@^4.3.0:
   version "4.3.0"
   resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-4.3.0.tgz#7e92e73d9174a99a59743f67a4ce879a04b5ae50"