在软件测试实践中,pytest 框架支持哪些方式来运行多个测试文件,以及如何执行整个测试目录的测试用例?请说明具体的命令行参数或配置方法。
考察说明
考查 pytest 命令行操作与测试组织能力
回答思路
- 【回答框架 1】pytest 默认会递归查找当前目录下符合命名规则的文件(如 test_*.py 或 *_test.py)并执行其中的测试函数,因此直接运行 pytest 即可运行整个目录。
- 【回答框架 2】若要运行多个特定文件,可以在命令行中列出多个文件路径,如 pytest test_a.py test_b.py,pytest 会依次执行这些文件中的测试。
- 【回答框架 3】也可以使用通配符匹配多个文件,如 pytest test_*.py,但需注意 shell 展开规则。
- 【回答框架 4】若需更精细控制,可使用 -k 选项按名称筛选测试,或使用 --ignore 排除某些目录或文件。
- 【回答框架 5】对于复杂项目,可在 pytest.ini 或 pyproject.toml 中配置 testpaths 指定默认测试目录,或在命令行中直接指定目录路径如 pytest tests/。
- 【关键点 1】pytest 默认自动发现并执行符合命名规则的测试文件,无需额外参数。
- 【关键点 2】运行多个文件可传递多个文件路径,或使用通配符。
- 【关键点 3】运行整个目录只需传递目录路径,pytest 会递归搜索。
- 【关键点 4】配置文件可设置 testpaths 来固定测试目录。
- 【关键点 5】-k 可基于名称表达式筛选测试用例。
- 【易错点 1】注意通配符的 shell 展开可能因环境不同而行为不一致。
- 【易错点 2】避免在文件名或类名中混用不同命名约定,以免遗漏测试。
- 【易错点 3】指定文件时若文件路径错误,pytest 会报错,需确保路径正确。