如何在Python中实现100%代码覆盖率?
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
语句,而不会运行测试(也就是不会执行这两个定义的函数里面的内容)。