pytest使用
安装:
pip install pytest
pip install pytest-cov
utils.py代码
def add(a, b): return a+b def inc(x): return x + 1 def func_except(): raise SystemExit(1)
test_utils.py 代码
# -*- coding:utf-8 -*- import pytest from utils import add, inc, func_except def test_add(): assert add(1,1) == 2 assert add(1,2) == 3 def test_answer(): assert inc(3) == 4 def test_mytest(): with pytest.raises(SystemExit): func_except() # content of test_class.py class TestClass(object): def test_one(self): x = "this" assert 'h' in x def test_two(self): x = "hello" assert hasattr(x, 'find')
运行测试:
>pytest . ========================================================================================================== test session starts =========================================================================================================== platform win32 -- Python 3.7.3, pytest-5.0.0, py-1.8.0, pluggy-0.12.0 rootdir: C:\Users\l00379637\PycharmProjects\cis_algo_refator plugins: cov-2.7.1 collected 5 items test_utils.py ..... [100%] ======================================================================================================== 5 passed in 0.16 seconds ========================================================================================================
查看覆盖率:
pytest --cov=./
pytest --cov=./ ========================================================================================================== test session starts =========================================================================================================== platform win32 -- Python 3.7.3, pytest-5.0.0, py-1.8.0, pluggy-0.12.0 rootdir: C:\Users\l00379637\PycharmProjects\cis_algo_refator plugins: cov-2.7.1 collected 5 items test_utils.py ..... [100%] ----------- coverage: platform win32, python 3.7.3-final-0 ----------- Name Stmts Miss Cover ----------------------------------- test_utils.py 17 0 100% utils.py 6 0 100% ----------------------------------- TOTAL 23 0 100% ======================================================================================================== 5 passed in 0.20 seconds ========================================================================================================