diff options
author | SerenaFeng <feng.xiaowei@zte.com.cn> | 2017-02-23 15:14:12 +0800 |
---|---|---|
committer | Aric Gardner <agardner@linuxfoundation.org> | 2017-02-24 21:56:48 +0000 |
commit | e50681fa31b03439949b0d74baa8f498687dc101 (patch) | |
tree | 8efd820570520395cfcc04387c58990be36708af | |
parent | d22a0be616fb01a3239fed87df9e7145381234a6 (diff) |
leverage tox to facilitate the development
Before submitting a patch, we need to execute flake8, unittest,
open coverage report, now with the help of tox any pytest,
we can process them all with only one command.
pytest is choosen here is because of its useful assert showcase,
and powerful properties and healthy ecosystem(plugins of mock etc)
Change-Id: I7ee89da370da08cc2bc70f7d3b1e2741d7d2e1e8
Signed-off-by: SerenaFeng <feng.xiaowei@zte.com.cn>
-rw-r--r-- | .gitignore | 2 | ||||
-rw-r--r-- | utils/test/testapi/.coveragerc | 27 | ||||
-rw-r--r-- | utils/test/testapi/test-requirements.txt | 10 | ||||
-rw-r--r-- | utils/test/testapi/tox.ini | 41 |
4 files changed, 80 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore index 918e32154..0aa7b8c09 100644 --- a/.gitignore +++ b/.gitignore @@ -33,3 +33,5 @@ cover/ coverage.xml nosetests.xml testapi_venv/ +.cache +.tox diff --git a/utils/test/testapi/.coveragerc b/utils/test/testapi/.coveragerc new file mode 100644 index 000000000..23fb97fba --- /dev/null +++ b/utils/test/testapi/.coveragerc @@ -0,0 +1,27 @@ +# .coveragerc to control coverage.py + +[run] +branch = True +source = + opnfv_testapi + +[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 __name__ == .__main__.: + +ignore_errors = True + diff --git a/utils/test/testapi/test-requirements.txt b/utils/test/testapi/test-requirements.txt new file mode 100644 index 000000000..89333199a --- /dev/null +++ b/utils/test/testapi/test-requirements.txt @@ -0,0 +1,10 @@ +# The order of packages is significant, because pip processes them in the order +# of appearance. Changing the order has an impact on the overall integration +# process, which may cause wedges in the gate later. + +tox +pytest +pytest-cov +coverage +pykwalify +pip_check_reqs diff --git a/utils/test/testapi/tox.ini b/utils/test/testapi/tox.ini new file mode 100644 index 000000000..81c9dfab1 --- /dev/null +++ b/utils/test/testapi/tox.ini @@ -0,0 +1,41 @@ +# Tox (http://tox.testrun.org/) is a tool for running tests +# in multiple virtualenvs. This configuration file will run the +# test suite on all supported python versions. To use it, "pip install tox" +# and then run "tox" from this directory. + +[tox] +envlist = py27,pep8 +skipsdist = True +sitepackages = True + +[testenv] +usedevelop = True +install_command = pip install -U {opts} {packages} +deps = + -rrequirements.txt + -rtest-requirements.txt +commands= + py.test \ + --basetemp={envtmpdir} \ + --cov \ + {posargs} +setenv= + HOME = {envtmpdir} + PYTHONPATH = {toxinidir} + +[testenv:pep8] +deps = flake8 +commands = flake8 {toxinidir} + +[flake8] +# H803 skipped on purpose per list discussion. +# E123, E125 skipped as they are invalid PEP-8. + +show-source = True +ignore = E123,E125,H803,E501 +builtins = _ +exclude = build,dist,doc,legacy,.eggs,.git,.tox,.venv,testapi_venv,venv + +[pytest] +testpaths = opnfv_testapi/tests +python_functions = test_* |