Python unittest运行显示Ran 0 tests无测试用例执行如何解决
单元测试运行显示0条用例的解决方法
- 检查测试文件命名规范。如果通过
python -m unittest自动发现的方式执行测试,默认只会加载文件名以test_开头的Python文件,不符合命名规则的文件不会被识别。直接运行单个测试文件不受该规则限制,建议统一按规范命名测试文件。 - 检查模块导入是否正确。测试文件开头必须包含
import unittest语句,漏导、错导unittest模块都会导致测试类无法被框架识别。 - 检查测试方法命名规则。unittest默认只会执行名称以
test小写开头的方法,你当前的test_log_model符合命名要求,可核对本地代码是否存在拼写错误、大小写错误的问题。 - 检查入口代码缩进。
if __name__ == "__main__"必须顶格编写,不能缩进在类或其他函数内部,否则直接运行脚本时不会触发测试执行,你给出的示例代码中该部分格式正确,可核对本地实际代码是否存在缩进异常。 - 检查是否有跳过测试的装饰器。如果Test类或者test_log_model方法上添加了
@unittest.skip、@unittest.skipIf这类跳过测试的装饰器,对应用例也不会被执行。 - 手动指定测试加载逻辑。如果以上检查都无问题,可以替换原有入口代码,手动加载当前测试类的用例执行:
if __name__ == "__main__": suite = unittest.TestLoader().loadTestsFromTestCase(Test) runner = unittest.TextTestRunner() runner.run(suite)
额外提示:你现有代码中的断言逻辑存在问题,
response.text是字符串类型,和字典对比会直接报错,建议修改为self.assertEqual(response.json(), {'C': 0.0001, 'penalty': 'none', 'solver': 'lbfgs'}),先将响应体解析为字典再进行对比。
内容的提问来源于stack exchange,提问作者Amanda
相关产品推荐
相关产品推荐

