pytest 测试命名规则
在自动化测试项目中,单元测试框架运行时需要先搜索测试模块(即测试用例所在的.py文件),然后在测试模块中搜索测试类或测试函数,接着在测试类中搜索测试方法,最后加入到队列中,再按执行顺序执行测试。
所以,只有测试模块、测试类/测试函数、测试方法都符合命名规则,框架才能去识别测试用例。
那么,接下来我们来了解 pytest 框架中的测试命名规则。
pytest的测试命名规则
在了解pytest的测试命名规则之前,我们先需要知道 pytest 搜索用例的规则,
它默认搜索规则如下:
- 如果pytest执行命令中指定了目录,则从该指定目录中开始查找测试用例文件,如果没有指定,则从当前运行目录开始查找文件,最终的结果是找到整个项目中符合命名规则的测试用例。
- 会查找整个项目中符合命令规则的测试模块,再由 测试模块-->测试类/测试函数-->测试方法 一层一层递归查找。
pytest 的测试命名规则如下:
- 测试模块:以 test_ 开头命名,如:test_login.py,或以 _test 结尾,如:login_test.py
- 测试类:必须以Test开头命名,且测试类中不能有 init 方法
- 测试方法/测试函数:必须以test开头,如:test_login() 或 testRegister()
最好是将测试模块、测试方法/函数都以 test_ 开头命名,这样可读性更强,如下图: