Preface
What's the tox? Here, we give the official link:
https://tox.readthedocs.io/en/latest/
Context
Preconditions: Python and Pytest have been installed on machine .
1.Install tox
pip install -i http://pypi.mirrors.ustc.edu.cn/simple/ tox --trusted-host pypi.mirrors.ustc.edu.cn
2.Create one directory and some sub-directory with source file , test file as follow:
3. Files contents:
1)requirements.txt
pytest==3.0.0
mock==2.0.0
coverage==4.1
pytest-cov==2.0
pytest-randomly==1.0.0
pytest-mock==1.2
2)src/app.py
from math import fabs,ceil
def math_fabs(x):
return fabs(x)
def math_ceil(x):
return ceil(x)
if __name__ == '__main__':
print(math_fabs(-1.2))
print(math_ceil(-2.3))
3)tests/test_app.py
import pytest
from src.app import math_ceil,math_fabs
def test_math_fabs():
assert math_fabs(-1.2) == 1.2
assert math_fabs(0) == 0
assert math_fabs(2.4) == 2.4
4) tox.ini
[tox]
envlist = py38
skipsdist = True
indexserver =
default = http://pypi.mirrors.ustc.edu.cn/simple
[testenv]
install_command = pip install -i http://pypi.mirrors.ustc.edu.cn/simple/ tox --trusted-host pypi.mirrors.ustc.edu.cn {opts} {packages}
deps =
-rrequirements.txt
commands = coverage erase
py.test --cov={toxinidir}/src -sx tests
coverage html
setenv =
PYTHONPATH = {toxinidir}/py38
[testenv:dev]
deps = pytest
commands = {posargs:py.test}
5) src/__init__.py and tests/__init__.py are both left empty
4. After all files are finished, then run tox in tree directry.
5. we can check the directory again, maybe some new folders are created.