[tox] envlist = py27,py33,py34,py35,py36,pypy, docs, {py2,py3}-cover,coverage [testenv] # Most of these are defaults but if you specify any you can't fall back # to defaults for others. basepython = py27: python2.7 py33: python3.3 py34: python3.4 py35: python3.5 py36: python3.6 pypy: pypy py2: python2.7 py3: python3.5 commands = pip install colander[testing] nosetests --with-xunit --xunit-file=nosetests-{envname}.xml {posargs:} [testenv:docs] basepython = python3.5 whitelist_externals = make commands = pip install colander[docs] make -C docs html epub BUILDDIR={envdir} "SPHINXOPTS=-W -E" # we separate coverage into its own testenv because a) "last run wins" wrt # cobertura jenkins reporting and b) pypy and jython can't handle any # combination of versions of coverage and nosexcover that i can find. [py-cover] commands = pip install colander[testing] coverage run --source=colander {envbindir}/nosetests coverage xml -o {envname}.xml [testenv:py2-cover] commands = {[py-cover]commands} setenv = COVERAGE_FILE=.coverage.py2 [testenv:py3-cover] commands = {[py-cover]commands} setenv = COVERAGE_FILE=.coverage.py3 [testenv:coverage] basepython = python3.5 commands = coverage erase coverage combine coverage xml coverage report --show-missing --fail-under=100 deps = coverage setenv = COVERAGE_FILE=.coverage