From 4bbd0f138f0066d14e73fdc1531653378b218897 Mon Sep 17 00:00:00 2001
From: "Olivier J.N. Bertrand" <olivier.bertrand@uni-bielefeld.de>
Date: Thu, 17 May 2018 14:22:15 +0200
Subject: [PATCH] Add coverage function

---
 .coveragerc    | 12 ++++++++++++
 .gitlab-ci.yml | 38 +++++++++++++++++++++++++++-----------
 setup.py       |  3 ++-
 3 files changed, 41 insertions(+), 12 deletions(-)
 create mode 100644 .coveragerc

diff --git a/.coveragerc b/.coveragerc
new file mode 100644
index 0000000..9ef16d0
--- /dev/null
+++ b/.coveragerc
@@ -0,0 +1,12 @@
+# .coveragerc to control coverage.py
+[run]
+branch = True
+omit =
+    # Omit all test_ functions
+    **/test_*
+    # Omit blender functions / can be only tested with blender files
+    **/blend*
+source = navipy
+
+[html]
+directory = coverage_html_report
\ No newline at end of file
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index bbc3a1d..966267a 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -5,6 +5,7 @@ image: python:latest
 stages:
   - build
   - test
+  - coverage
   - doc_build
   - deploy
 
@@ -26,8 +27,11 @@ navipy_install:
 
 flake8:
   stage: test
+  dependencies:
+  - navipy_install
+  
   script:
-  - pip3 install tox flake8
+  - source $CI_PROJECT_DIR/venv/bin/activate
   - python3 -m flake8 navipy/*.py
   
 navipy_unittest:
@@ -37,22 +41,33 @@ navipy_unittest:
     
   script:
   - source $CI_PROJECT_DIR/venv/bin/activate
+  - python3 -m coverage run -m unittest discover navipy
+
+  artifacts:
+    paths:
+      - .coverage
   
 coverage:
-    stage: test
+    stage: coverage
+    dependencies: 
+    - navipy_install
+    - navipy_unittest
+    
     script:
-        - pip3 install --user nose
-        - pip3 install --user coverage
-        - python3 -m nose -c .noserc -q --cover-html-dir=build --cover-html
-        - python3 -m coverage report -m
-    coverage: '/TOTAL.+ ([0-9]{1,3}%)/'
+    - source $CI_PROJECT_DIR/venv/bin/activate
+    - python3 -m coverage html
+	
     artifacts:
         paths:
-            - build
+            - coverage_html_report
         expire_in: 1 day
 
 doc_build:
   stage: doc_build
+  dependencies:
+  - navipy_install
+  - coverage
+
   script:
   - source $CI_PROJECT_DIR/venv/bin/activate
   - pip3 install --user sphinx sphinx_rtd_theme
@@ -60,7 +75,7 @@ doc_build:
 
   artifacts:
     paths:
-    - build
+    - doc/build
   
   
 pages:
@@ -76,11 +91,12 @@ pages:
   script:
     - ssh -p50022 bolirev@bioneuro77.biologie.uni-bielefeld.de "mkdir -p /fastdata/html/navipy/"
     - mkdir -p public/coverage
-    - cp -fr docs/build/html/* public/
-    - cp -fr build/* public/coverage/
+    - cp -fr doc/build/html/* public/
+    - cp -fr coverage_html_report/* public/coverage/
 
   dependencies:
     - coverage
+    - doc_build
     
   artifacts:
     paths:
diff --git a/setup.py b/setup.py
index d445eaf..aa1cce6 100644
--- a/setup.py
+++ b/setup.py
@@ -43,7 +43,8 @@ setup_dict = {'name': 'navipy',
                                    'sphinx-argparse',
                                    'ipython',
                                    'flake8',
-                                   'tox'],
+                                   'tox',
+                                   'coverage'],
               'package_data': {'navipy': ['resources/database.db',
                                           'resources/*.blend']},
               'include_package_data': True,
-- 
GitLab