diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 98a9b8fbb5e266d2967af8bcb1cc77606d88715c..0291fd2d6412fb6e22d5303add3f9f71ec66dc51 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -9,13 +9,44 @@ stress_test:
       alias: rabbitmq
   before_script:
     - python setup.py install
+    - coverage run --append -m compile_definitions
   script:
-    - coverage run -m stress_tests
+    - coverage run --append -m stress_tests
     - COOLAMQP_FORCE_SELECT_LISTENER=1 coverage run --append -m stress_tests
+  after_script:
+    - mv .coverage .coverage.stress
+  artifacts:
+    paths:
+      - ".coverage.stress"
+
+unittest:
+  stage: test
+  services:
+    - name: rabbitmq:3-management
+      alias: rabbitmq
+  before_script:
+    - coverage run --append -m compile_definitions
+  script:
+    - coverage run --append -m nose2 -vv
+  after_script:
+    - mv .coverage .coverage.units
+  artifacts:
+    paths:
+      - ".coverage.units"
+
+
+calc_coverage:
+  stage: build
+  dependencies:
+    - unittest
+    - stress_test
+  script:
+    - coverage combine
     - coverage xml
     - coverage report
   coverage: /TOTAL.*\s+(\d+\%)/
 
+
 pages:
   image: zoo.smok.co/build/build:latest
   stage: build