summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.coveragerc27
-rw-r--r--.gitignore2
-rw-r--r--.travis.yml19
3 files changed, 44 insertions, 4 deletions
diff --git a/.coveragerc b/.coveragerc
new file mode 100644
index 0000000000..37410a3677
--- /dev/null
+++ b/.coveragerc
@@ -0,0 +1,27 @@
+# .coveragerc to control coverage.py
+[run]
+branch = True
+
+[report]
+# Regexes for lines to exclude from consideration
+exclude_lines =
+ # Have to re-enable the standard pragma
+ pragma: no cover
+
+ # Don't complain about missing debug-only code:
+ def __repr__
+ if self\.debug
+
+ # Don't complain if tests don't hit defensive assertion code:
+ raise AssertionError
+ raise NotImplementedError
+
+ # Don't complain if non-runnable code isn't run:
+ if 0:
+ if False:
+ if __name__ == .__main__.:
+
+ignore_errors = True
+
+[html]
+directory = htmlcov
diff --git a/.gitignore b/.gitignore
index 4b97de5d50..643e5d9b03 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,3 +9,5 @@
/share/spack/dotkit
/share/spack/modules
/TAGS
+/htmlcov
+.coverage
diff --git a/.travis.yml b/.travis.yml
index ab379be486..4207f8d08b 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -6,21 +6,32 @@ python:
# Use new Travis infrastructure (Docker can't sudo yet)
sudo: false
-# No need to install any deps.
-install: true
+# Install coveralls to obtain code coverage
+install:
+ - "pip install coveralls"
+ - "pip install pep8"
before_install:
# Need this for the git tests to succeed.
- git config --global user.email "spack@example.com"
- git config --global user.name "Test User"
+ # Need this to be able to compute the list of changed files
+ - git fetch origin develop:develop
script:
- . share/spack/setup-env.sh
- - spack test
+ # Run unit tests with code coverage
+ - coverage run --source=lib --omit=lib/spack/spack/test/*,lib/spack/env/*,lib/spack/docs/* bin/spack test
+ # Checks if the file that have been changed are pep8 conformant
+ - CHANGED_PYTHON_FILES=`git diff develop... --name-only | perl -ne 'print if /\.py/g'`
+ - if [[ ${CHANGED_PYTHON_FILES} ]] ; then pep8 --max-line-length=120 ${CHANGED_PYTHON_FILES} ; fi
+
+after_success:
+ - coveralls
notifications:
email:
recipients:
- - tgamblin@llnl.gov
+ - massimiliano.culpo@gmail.com
on_success: change
on_failure: always