一、首先在我的temp\temp_test1\下新建一个py文件,名字为divi.py

文件中的内容为:
def divi(a, b):
if type(a) and type(b) not in (int, float):
return False
if b == 0:
return False
else:
result = a/b
return result二、同级目录下,也可以不同级。创建test_divi.py,Terminal中输入pip install ddt安装,安装完成后,编辑py文件内容如下:
import ddt
import unittest
from temp_test1.divi import divi
data = [
{'num_a': 1, 'num_b': 2, 'result': 0.5},
{'num_a': 1, 'num_b': 0, 'result': False},
{'num_a': 4, 'num_b': 2, 'result': 2.0},
{'num_a': 5.2, 'num_b': 2, 'result': 2.6},
{'num_a': 5.2, 'num_b': 3, 'result': 1.73},
]
@ddt.ddt
class TestDivi(unittest.TestCase):
def setUp(self):
print('======test start======')
def tearDown(self):
print('======test end======')
@ddt.data(*data)
def test_divi(self, data):
self.assertEqual(divi(data['num_a'], data['num_b']), data['result'])三、执行进行单元测试,验证divi方法在不同情况下的处理和代码的健壮性。可以看到有一个是失败的,因为返5.2/3返回的是1.7333333333333334 不等于我的预期1.73

四、 安装coverage模块,进行代码覆盖率检查。在Terminal中输入pip install coverage安装
安装成功后,进入Terminal终端,进入到代码目录中,执行coverage run test_divi.py,发现报错了

报错原因是因为找不到,因此我们添加环境变量,打开环境变量,添加PYTHONPATH,把路径C:\Users\songlihui\PycharmProjects\temp\temp_test1添加进去保存

继续执行coverage run test_divi.py,发现还是报刚才的错,就是配置环境配置完成后,没能在终端模式中立即生效的原因。
我们换一种方式,在代码顶部加一段下面红框中的话

继续执行coverage run test_divi.py,发现成功了

继续接着执行coverage html
然后进入到test_divi.py文件目录中,我们发现多了一个叫htmlcov的文件夹

打开文件夹中的index.html,我们看到了代码覆盖率。不过里面有一个ddt,会干扰我们的统计结果。留给大家自行学习深入,大家可以上网查一下解决方法~~

版权声明:本文为songlh1234原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。