030*_*030 2 python tdd code-coverage coverage.py python-coverage
学习.py
def multiply(a, b):
return a * b
def addition(a, b):
return a + b
Run Code Online (Sandbox Code Playgroud)
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()
Run Code Online (Sandbox Code Playgroud)
50% 的代码覆盖率
虽然两种方法都经过测试,但是代码覆盖率都是50%
C:\>coverage run learning.py test_learning.py
C:\>coverage report
Name Stmts Miss Cover
------------------------------
learning 4 2 50%
Run Code Online (Sandbox Code Playgroud)
您想要的覆盖命令是:
coverage run test_learning.py
Run Code Online (Sandbox Code Playgroud)
您正在做的是learning.py
使用参数运行test_learning.py
,它只执行 2 个def
语句,从不运行测试(或执行 2 个定义函数的内容)。