使用pytest管理测试套件:无入口点运行失败及测试runner报错求助
问题解答
1. 整合测试套件并设置统一入口点
你遇到的报错是因为错误使用了setuptools.setup()——这个函数用于Python包的打包发布,并非直接运行测试的工具。要实现统一测试入口,最简单的方式是直接用pytest驱动所有测试:
创建纯pytest实现的test_runner.py,代码如下:
import pytest if __name__ == '__main__': # 运行tests目录下所有符合test_*.py命名规则的测试用例 # 可添加pytest命令行参数,比如-v(详细输出)、-s(显示print内容) pytest.main(["tests/", "-v"])
运行这个文件就能自动扫描tests目录下所有test_前缀的测试文件,执行全部测试用例,这就是统一的入口点。如果测试文件不在tests目录,替换为对应路径即可(比如当前目录写"./")。
2. 可以仅用pytest编写test_runner.py
完全可以,这也是更推荐的方式——pytest本身具备自动发现测试用例的能力,无需依赖unittest的测试套件机制。上面的代码就是纯pytest实现的测试运行器,没有使用任何unittest相关代码。
原有代码问题说明
你之前的代码调用了setuptools.setup(),如果要通过这种方式运行测试,需要在命令行执行python test_runner.py test,而非直接运行文件。但这种基于unittest的方案,远不如直接用pytest简洁高效。
内容的提问来源于stack exchange,提问作者Valtesar
相关产品推荐
相关产品推荐

