fonttools/tox.ini
Cosimo Lupo 454f60f7b6
tox.ini: use coverage.py instead of pytest-cov; run in --parallel-mode; use codecov instead of coveralls
We no longer use coverage.py through the pytest-cov plugin, as it does not
support --parallel-mode (or at least I wasn't able to figure it out).
We run pytest through `coverage run -m pytest` instead, which does the same
as `pytest --cov`.

Running `tox` locally by default will now run pytest and coverage on 2.7, 3.5 and 3.6; it will then
combine coverage data from all three, and finally generate a coverage report in htmlcov/index.html

We need tp temporarily install coverage.py from the mercurial repo instead of the latest release
because we require a patch that is not available yet with coverage 4.2:
https://bitbucket.org/ned/coveragepy/pull-requests/118/check-source-isdir-not-just-exists-there/diff

Finally, I replaced Coveralls with Codecov, as the latter is better designed and also supports Appveyor.
2016-12-26 18:32:26 +00:00

48 lines
1.4 KiB
INI

[tox]
envlist = py{27,35,36}-cov, htmlcov
skip_missing_interpreters = true
[testenv]
basepython =
py27: {env:TOXPYTHON:python2.7}
pypy: {env:TOXPYTHON:pypy}
py34: {env:TOXPYTHON:python3.4}
py35: {env:TOXPYTHON:python3.5}
py36: {env:TOXPYTHON:python3.6}
deps =
# we install coverage from source until 4.3 is released, because of this:
# https://bitbucket.org/ned/coveragepy/pull-requests/118/check-source-isdir-not-just-exists-there/diff
cov: hg+https://bitbucket.org/ned/coveragepy#egg=coverage
pytest
-rrequirements.txt
install_command =
pip install -v {opts} {packages}
commands =
# run the test suite against the package installed inside tox env.
# We use parallel mode and then combine later so that coverage.py will take
# paths like .tox/py36/lib/python3.6/site-packages/fontTools and collapse
# them into Lib/fontTools.
cov: coverage run --parallel-mode -m pytest {posargs:--pyargs fontTools}
nocov: pytest {posargs:--pyargs fontTools}
[testenv:htmlcov]
basepython = {env:TOXPYTHON:python3.5}
deps =
hg+https://bitbucket.org/ned/coveragepy#egg=coverage
skip_install = true
commands =
coverage combine
coverage html
[testenv:codecov]
passenv = *
basepython = {env:TOXPYTHON:python}
deps =
hg+https://bitbucket.org/ned/coveragepy#egg=coverage
codecov
skip_install = true
ignore_outcome = true
commands =
coverage combine
codecov --env TOXENV