diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index aa4fd6c7c50f6cfcb492975902d4d04bc10444d7..f5e1e275eac560d38c7b8a2bceb736fe5d1b5d5e 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,9 +1,11 @@
 stages:
+  - test
   - build
+  - docu
 
 
-build-ros:
-  stage: build
+rq-pytests:
+  stage: test
   image: ros:humble
   before_script:
    - git clone https://gitlab-ci-token:${CI_JOB_TOKEN}@mygit.th-deg.de/roboct/robo_quality/rq_interfaces
@@ -12,12 +14,36 @@ build-ros:
    - git clone https://gitlab-ci-token:${CI_JOB_TOKEN}@mygit.th-deg.de/roboct/robo_quality/rq_ddetection
    - git clone https://gitlab-ci-token:${CI_JOB_TOKEN}@mygit.th-deg.de/roboct/robo_quality/rq_trajectory
    - git clone https://gitlab-ci-token:${CI_JOB_TOKEN}@mygit.th-deg.de/roboct/robo_quality/rq_reconstruction
-   
-  script:
    - rosdep install --from-paths . -y --ignore-src
    - colcon build --merge-install
-  coverage: '/(?i)total.*? (100(?:\.0+)?\%|[1-9]?\d(?:\.\d+)?\%)$/'
+
+  script:
+   - pytest ./rq_controller/tests/
+   
+build-ros:
+  stage: build
+  image: ros:humble
+  dependencies: [rq-pytests]
+  needs:
+  - rq-pytests
   artifacts:
     when: always
     paths:
       - install
+
+create-docu:
+  stage: docu
+  image: ros:humble
+  dependencies: [rq-pytests]
+  needs:
+  - rq-pytests
+  before_script:
+    - pip install pdoc3
+    - source ./install/setup.bash
+  script:
+    - mkdir doc
+    - pdoc3 --html rq_controller -o=./doc/rq_controller -c show_source_code=True
+  artifacts:
+    when: always
+    paths:
+      - doc