单元测试
代码总会存在各种问题。
测试是必须的,其他
PyTest 使用入门
安装
快速开始
- 测试代码
写一个测试代码
# content of test_sample.py
def inc(x):
return x + 1
def test_answer():
assert inc(3) == 5
- 执行测试
命令行执行
$ pytest test_sample.py
执行日志如下:
=========================================================================== test session starts ============================================================================ platform win32 -- Python 3.7.3, pytest-4.4.0, py-1.8.0, pluggy-0.9.0
rootdir: D:\python\10-test\pytest
collected 1 item
test_sample.py F [100%]
================================================================================= FAILURES ================================================================================= _______________________________________________________________________________ test_answer ________________________________________________________________________________
def test_answer():
> assert inc(3) == 5
E assert 4 == 5
E + where 4 = inc(3)
test_sample.py:7: AssertionError
========================================================================= 1 failed in 0.06 seconds =========================================================================
测试多个测试用例
pytest 会执行所有的 test_*.py
/*_test.py
对应的 python 文件。
执行当前文件夹及其子文件夹。
测试标准规则
pytest实现以下标准测试发现:
如果未指定参数,则从testpath(如果已配置)或当前目录开始收集。 或者,命令行参数可以用于目录,文件名或节点ID的任意组合。
递归到目录中,除非它们与norecursedirs匹配。
在这些目录中,搜索由其测试包名称导入的 test_*.py
/*_test.py
文件。
从这些文件中收集测试项目:
在课堂外测试前缀测试函数或方法
在测试前缀测试类中测试前缀测试函数或方法(没有__init__
方法)
有关如何自定义测试发现的示例更改标准(Python)测试发现。
在Python模块中,pytest还使用标准的unittest.TestCase子类化技术发现测试。
参考资料
- 关键词
python unittest pytest
https://testandcode.com/2
- unittest