python 单元测试,unittest 测试框架
Posted CSR-kkk
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 单元测试,unittest 测试框架相关的知识,希望对你有一定的参考价值。
单元测试
单元测试是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。
注意:清楚被测代码块所预期的输入与输出,然后根据预期和程序逻辑来书写case。
预期结果要针对需求/设计的逻辑去写,而不是针对程序的实现去写,否则单测就失去了意义。
单元测试框架:
- Unittest
- Pytest
- Nose
- Mock
单元测试覆盖率:
代码覆盖率也被用于自动化测试和手工测试来度量测试是否全面的指标之一,应用覆盖率的思想增强测试用例的设计
单元测试覆盖率类型:
- 语句覆盖
- 条件覆盖
- 判断覆盖
- 路径覆盖
unittest 框架
- 官网:https://docs.python.org/3/library/unittest.html
- python 自带的单元测试框架,常用在单元测试
- 在自动化测试中提供用例组织与执行
- 提供丰富的断言方法-验证函数等功能
- 加上htmlTestRunner可以生成html的报告
编写规范:
- 测试模块首先import unittest
- 测试类必须继承unittest.TestCase
- 测试方法必须以"test_"开头
unittest 实战
setUp() 和 tearDown() 方法是在每条测试用例前后分别调用的方法,
setUpClass() 和 tearDownClass() 是在整个类的前后分别调用的方法。
执行测试用例:
-
执行方法一:执行当前文件所有的unittest测试用例
- unittest.main()
-
执行方法二:执行指定的测试用例,添加到测试套件里,批量执行测试方法
- suite = unittest.TestSuite() 创建一个测试套件
- suite.addTest(TestMethod(“test_01”))
- suite.addTest(TestMethod(“test_02”))
- unittest.TextTestRunner().run(suite)
- (命令行执行:python xx.py)
-
执行方法三:执行某个测试类,将测试类添加到测试套件中,批量执行测试类
- suite1 = unittest.TestLoader().loadTestsFromTestCase(TestCase1)
- suite2 = unittest.TestLoader().loadTestsFromTestCase(TestCase2)
- suite = unittest.TestSuite([suite1,suite2])
- unittest.TextTestRunner(verbosity=2).run(suite)
-
执行方法四:执行指定目录下的所有测试用例
- test_dir = “./test_case”
- discover = unittest.defaultTestLoader.discover(test_dir, pattern=“test_*.py”)
- unittest.TextTestRunner(verbosity=2).run(discover)
unittest 结合htmltestrunner 生成带日志的测试报告
参考:https://github.com/huilansame/HTMLTestRunner_PY3
以上是关于python 单元测试,unittest 测试框架的主要内容,如果未能解决你的问题,请参考以下文章