diff options
author | Jenkins <jenkins@review.openstack.org> | 2017-03-27 23:12:29 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2017-03-27 23:12:29 +0000 |
commit | f377238903a54001354f597f55ddf16fc9bb0996 (patch) | |
tree | ee0ddbda56df0a19df5b4d1abe014624c8603512 | |
parent | 6448d036f7ae7e336708f00b8d55d8cfb6c8c942 (diff) | |
parent | e3ad98ca19df57078de751878a38974327aa954d (diff) | |
download | pbr-f377238903a54001354f597f55ddf16fc9bb0996.tar.gz |
Merge "Remove testr entry point"
-rw-r--r-- | doc/source/index.rst | 47 | ||||
-rw-r--r-- | pbr/testr_command.py | 18 | ||||
-rw-r--r-- | setup.cfg | 2 | ||||
-rw-r--r-- | tox.ini | 4 |
4 files changed, 59 insertions, 12 deletions
diff --git a/doc/source/index.rst b/doc/source/index.rst index a2b4342..4c80aa6 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -390,6 +390,53 @@ environment, you can use:: testing = quux:python_version=='2.7' + +Testing +------- + +pbr overrides the ``setuptools`` hook ``test`` (i.e. ``setup.py +test``). The following sequence is followed: + +#. If a ``.testr.conf`` file exists and `testrepository + <https://pypi.python.org/pypi/testrepository>`__ is installed, PBR + will use it as the test runner. See the ``testr`` documentation + for more details. + + .. note:: + + This is separate to ``setup.py testr`` (note the extra ``r``) which + is provided directly by the ``testrepository`` package. Be careful + as there is some overlap of command arguments. + +#. Although deprecated, if ``[nosetests]`` is defined in ``setup.cfg`` + and `nose <http://nose.readthedocs.io/en/latest/>`__ is installed, + the ``nose`` runner will be used. + +#. In other cases no override will be installed and the ``test`` + command will revert to `setuptools + <http://setuptools.readthedocs.io/en/latest/setuptools.html#test-build-package-and-run-a-unittest-suite>`__. + +A typical usage would be in ``tox.ini`` such as:: + + [tox] + minversion = 2.0 + skipsdist = True + envlist = py33,py34,py35,py26,py27,pypy,pep8,docs + + [testenv] + usedevelop = True + setenv = + VIRTUAL_ENV={envdir} + CLIENT_NAME=pbr + deps = . + -r{toxinidir}/test-requirements.txt + commands = + python setup.py test --testr-args='{posargs}' + +The argument ``--coverage`` will set ``PYTHON`` to ``coverage run`` to +produce a coverage report. ``--coverage-package-name`` can be used to +modify or narrow the packages traced. + Additional Docs =============== diff --git a/pbr/testr_command.py b/pbr/testr_command.py index e5ed026..cd179a2 100644 --- a/pbr/testr_command.py +++ b/pbr/testr_command.py @@ -26,16 +26,18 @@ # license you chose for the specific language governing permissions and # limitations under that license. -"""setuptools/distutils commands to run testr via setup.py +"""setuptools/distutils command to run testr via setup.py -Currently provides 'testr' which runs tests using testr. You can pass ---coverage which will also export PYTHON='coverage run --source <your package>' -and automatically combine the coverage from each testr backend test runner -after the run completes. +PBR will hook in the Testr class to provide "setup.py test" when +.testr.conf is present in the repository (see pbr/hooks/commands.py). + +If we are activated but testrepository is not installed, we provide a +sensible error. + +You can pass --coverage which will also export PYTHON='coverage run +--source <your package>' and automatically combine the coverage from +each testr backend test runner after the run completes. -To use, just use setuptools/distribute and depend on testr, and it should be -picked up automatically (as the commands are exported in the testrepository -package metadata. """ from distutils import cmd @@ -41,8 +41,6 @@ autodoc_tree_excludes = [entry_points] distutils.setup_keywords = pbr = pbr.core:pbr -distutils.commands = - testr = pbr.testr_command:Testr egg_info.writers = pbr.json = pbr.pbr_json:write_pbr_json console_scripts = @@ -11,7 +11,7 @@ setenv = CLIENT_NAME=pbr deps = -r{toxinidir}/test-requirements.txt commands = - python setup.py testr --testr-args='{posargs}' + python setup.py test --testr-args='{posargs}' [tox:jenkins] sitepackages = True @@ -24,7 +24,7 @@ commands = python setup.py build_sphinx [testenv:cover] commands = - python setup.py testr --coverage + python setup.py test --coverage [testenv:venv] commands = {posargs} |