Python unittest中用assertEqual无法运行测试,显示执行0个测试
问题:Python unittest执行显示"Ran 0 tests in 0.000s"
我正在学习Python代码测试,编写了一个示例测试代码但无法运行。使用的代码如下:
import unittest def MTP(a:float, b:float): return a*b class MtpTestCase(unittest.TestCase): def Test_MTP(self): self.assertEqual(MTP(5,4), 20) if __name__ == "__main__": unittest.main()
执行后得到结果:Ran 0 tests in 0.000s,不清楚问题出在哪里。
问题原因及解决方法
- 测试方法命名不规范:unittest框架仅自动识别以
test_(小写t开头)为前缀的方法作为测试用例,你的方法名是Test_MTP(大写T开头),框架无法识别该方法,因此显示运行0个测试。 - 代码缩进错误:原代码中
self.assertEqual语句无缩进,会触发语法错误,需按照Python规范缩进4个空格。
修正后的完整代码:
import unittest def MTP(a:float, b:float): return a*b class MtpTestCase(unittest.TestCase): def test_mtp(self): self.assertEqual(MTP(5,4), 20) if __name__ == "__main__": unittest.main()
运行修正后的代码,会正常执行测试用例,输出示例如下:
. ---------------------------------------------------------------------- Ran 1 test in 0.000s OK
内容的提问来源于stack exchange,提问作者belhichb
相关产品推荐
相关产品推荐

