Pytest配置问题:测试math_quiz脚本时未执行测试用例
pytest收集不到测试用例的常见原因及解决办法
文件命名不规范:pytest默认只扫描
test_*.py或*_test.py格式的文件。如果你的测试文件名字不符合这个规则(比如math_quiz_tests.py不算,得是test_math_quiz.py或math_quiz_test.py),pytest会直接忽略。解决:重命名测试文件到符合规则的格式。测试函数/类命名不规范:测试函数必须以
test_开头,测试类必须以Test开头(且不能包含__init__方法)。比如你写的verify_calculation()不会被识别,改成test_verify_calculation()才行;如果用类封装,得写成TestMathQuiz这种格式。解决:调整测试函数/类的命名到符合规则的格式。运行路径错误:如果你的测试文件不在当前执行
pytest命令的目录下,又没指定路径,pytest找不到测试文件。比如测试文件在tests子目录,你在项目根目录直接跑pytest的话,需要改成pytest tests/或者指定具体文件名pytest tests/test_math_quiz.py。解决:切换到测试文件所在目录运行,或者在命令里指定测试文件/目录路径。未配置测试路径:如果测试文件放在自定义目录(比如
test_cases),pytest默认不会扫描这类目录。解决:在项目根目录创建pytest.ini文件,添加以下内容指定测试路径:
[pytest] testpaths = test_cases/
或者直接用命令指定路径运行。
- 代码结构问题:检查测试函数是否被正确定义——比如缩进错误导致函数嵌套在其他非测试函数里,或者测试代码被注释掉,或者测试类里写了
__init__方法(pytest会跳过带__init__的测试类)。解决:修正代码结构,确保测试函数是顶级定义或在合规的测试类中,移除测试类的__init__方法。
内容的提问来源于stack exchange,提问作者Shane Quintard
相关产品推荐
相关产品推荐

