1. 集成doctest
模块
doctest[1]是python
内置的一个标准库,它可以查找代码中类似交互式会话形式的注释,并检查它们是否正确;
1.1. 通过指定文本文件的方式
默认情况下,pytest
会自动收集所有名称匹配test*.txt
规则的文件,并调用doctest
执行它们;
下面,我们来看一个简单的例子:
# src/chapter-9/test_example.txt
>>> x = 3
>>> x
3
直接使用pytest
命令就可以执行它:
λ pipenv run pytest src/chapter-9/test_example.txt
====================== test session starts =======================
platform win32 -- Python 3.7.3, pytest-5.1.3, py-1.8.0, pluggy-0.13.0
rootdir: D:\Personal Files\Projects\pytest-chinese-doc
collected 1 item
src\chapter-9\test_example.txt . [100%]
======================= 1 passed in 0.03s ========================
我们也可以使用命令行选项--doctest-glob
添加文件名称的匹配规则;
例如,匹配rst
格式的文件:
pytest --doctest-glob='*.rst'
注意:
--doctest-glob
可以多次指定,它们之间是或者的关系,并且依旧支持默认的test*.txt
规则;
1.1.1. 文本文件的编码
doctest
文件的默认编码是UTF-8,你可以在pytest.ini
中使用doctes