summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.coveragerc9
-rw-r--r--.gitignore2
-rw-r--r--.travis.yml7
-rw-r--r--README.rst3
-rw-r--r--tox.ini37
5 files changed, 55 insertions, 3 deletions
diff --git a/.coveragerc b/.coveragerc
new file mode 100644
index 000000000..9e18d8489
--- /dev/null
+++ b/.coveragerc
@@ -0,0 +1,9 @@
+[paths]
+source =
+ pylint
+
+[report]
+include =
+ pylint/*
+omit =
+ */test/*
diff --git a/.gitignore b/.gitignore
index 30675d6ab..cb8281678 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,5 @@ debian/pylint.*.log
debian/pylint.*.debhelper
debian/pylint.substvars
debian/pylint
+.coverage
+.coverage.*
diff --git a/.travis.yml b/.travis.yml
index 0d163afab..759758c20 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -20,13 +20,16 @@ before_install:
- uname -a
- lsb_release -a
install:
- - pip install tox
+ - pip install tox coverage coveralls
- virtualenv --version
- easy_install --version
- pip --version
- tox --version
+ - coverage --version
script:
- - tox -e $TOXENV
+ - tox -e coverage-erase,$TOXENV
+after_success:
+ - tox -e coveralls
after_failure:
- more .tox/log/* | cat
- more .tox/*/log/* | cat
diff --git a/README.rst b/README.rst
index ef7665f57..7159110f4 100644
--- a/README.rst
+++ b/README.rst
@@ -9,6 +9,9 @@ README for Pylint - http://www.pylint.org/
:alt: AppVeyor Build Status
:target: https://ci.appveyor.com/project/PCManticore/pylint
+.. image:: https://coveralls.io/repos/github/PyCQA/pylint/badge.svg?branch=master
+ :target: https://coveralls.io/github/PyCQA/pylint?branch=master
+
Pylint is a Python source code analyzer which looks for programming errors,
helps enforcing a coding standard and sniffs for some code smells (as defined in
Martin Fowler's Refactoring book).
diff --git a/tox.ini b/tox.ini
index 314b271cd..8c083e8dd 100644
--- a/tox.ini
+++ b/tox.ini
@@ -11,6 +11,41 @@ commands = pylint -rn --rcfile={toxinidir}/pylintrc {envsitepackagesdir}/pylint
[testenv]
deps =
git+https://github.com/PyCQA/astroid@master
+ coverage
-commands = python -Wi -m unittest discover -s {envsitepackagesdir}/pylint/test/ -p {posargs:*test_*}.py
+setenv =
+ COVERAGE_FILE = {toxinidir}/.coverage.{envname}
+
+commands =
+ python -Wi {envsitepackagesdir}/coverage run -m unittest discover -s {envsitepackagesdir}/pylint/test/ -p {posargs:*test_*}.py
+
+ ; Transform absolute path to relative path
+ ; for compatibility with coveralls.io and fix 'source not available' error.
+ ; If you can find a cleaner way is welcome
+ python -c "import os;cov_strip_abspath = open(os.environ['COVERAGE_FILE'], 'r').read().replace('.tox' + os.sep + os.path.relpath('{envsitepackagesdir}', '{toxworkdir}') + os.sep, '');open(os.environ['COVERAGE_FILE'], 'w').write(cov_strip_abspath)"
changedir = {toxworkdir}
+
+[testenv:coveralls]
+setenv =
+ COVERAGE_FILE = {toxinidir}/.coverage
+passenv =
+ *
+deps =
+ coverage
+ coveralls
+skip_install = true
+commands =
+ python {envsitepackagesdir}/coverage combine
+ python {envsitepackagesdir}/coverage report --rcfile={toxinidir}/.coveragerc -m
+ - coveralls --rcfile={toxinidir}/.coveragerc
+changedir = {toxinidir}
+
+[testenv:coverage-erase]
+setenv =
+ COVERAGE_FILE = {toxinidir}/.coverage
+deps =
+ coverage
+skip_install = true
+commands =
+ python {envsitepackagesdir}/coverage erase
+changedir = {toxinidir}