安装:
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 ========================================================================================================