求助:编写简单pytest测试用例后,pytest无法识别测试
排查pytest找不到测试用例的思路
嘿,我来帮你梳理下这个问题的排查方向!从你给出的代码和描述来看,有几个很关键的点需要逐一检查:
函数名称不匹配(最直接的问题)
你定义的被测试函数是sqr(x),但测试函数里调用的却是kvadrat(2)——这俩名字完全不搭啊!先把测试里的函数名改成sqr,另外还要注意:你的sqr函数逻辑是x**2 + 1,所以sqr(2)的结果是5,不是你断言的4,这个逻辑错误也得修正。文件命名要符合pytest规则
pytest默认只会自动识别两类文件:- 文件名以
test_开头的(比如test_calculation.py) - 文件名以
_test.py结尾的(比如calculation_test.py)
如果你的代码写在不符合这个规则的文件里(比如my_code.py),pytest根本不会去扫描里面的测试函数。
- 文件名以
测试函数的位置和命名
你的测试函数test_sqr()命名是符合要求的(以test_开头),但要确保它是顶级函数——不要嵌套在其他类或者函数里面,否则pytest也识别不到。确认执行pytest的路径
运行pytest时,要保证你在测试文件所在的目录,或者明确指定文件路径。比如测试文件在当前目录下的tests文件夹里,你得运行pytest tests/或者先cd到tests目录再执行pytest。用排查命令验证
如果上面的都检查过还是有问题,试试运行pytest --collect-only,这个命令会列出pytest能发现的所有测试用例。如果你的test_sqr不在列表里,那肯定是命名或路径的问题没解决。
最后给你修正后的代码示例:
def sqr(x): return x**2 + 1 def test_sqr(): assert sqr(2) == 5 # 修正了函数名和断言结果
内容的提问来源于stack exchange,提问作者Seward Hercules
相关产品推荐
相关产品推荐

