如何在Python中实现100%代码覆盖率?

2 投票
1 回答
2394 浏览
提问于 2025-04-18 11:47

learning.py

def multiply(a, b):
    return a * b

def addition(a, b):
    return a + b

test_learning.py

import unittest

from learning import *

class Test(unittest.TestCase):
    def test_multiply(self):
        self.assertEqual( multiply(3,4), 12)

    def test_addition(self):
        self.assertEqual( addition(5,10), 15)       

if __name__ == '__main__':
    unittest.main()

代码覆盖率50%

虽然这两种方法都经过了测试,但代码覆盖率只有50%

C:\>coverage run learning.py test_learning.py

C:\>coverage report

Name       Stmts   Miss  Cover
------------------------------
learning       4      2    50%

1 个回答

5

你想要的覆盖率命令是:

coverage run test_learning.py

你现在做的事情是用参数 test_learning.py 来运行 learning.py,这样只会执行两个 def 语句,而不会运行测试(也就是不会执行这两个定义的函数里面的内容)。

撰写回答