unittest初体验
程序员文章站
2022-05-14 18:56:27
...
count.py
#!/usr/bin/env python
# -*- coding:utf-8 -*-
'''
Author:qin
Date:2018/11/08
Describe:简单计算器+、-
'''
class Calculator():
def __init__(self,a,b):
self.a = int(a)
self.b = int(b)
def add(self):
return self.a+self.b
def sub(self):
return self.a-self.b
test_count.py
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import unittest
import HTMLTestRunner
from testforunittest.count import Calculator
class CountTest(unittest.TestCase):
def setUp(self):
self.cal = Calculator(8,4)
def tearDown(self):
pass
def test_add(self):
result = self.cal.add()
self.assertEqual(result,12)
def test_sub(self):
result = self.cal.sub()
self.assertEqual(result, 4)
if __name__=="__main__":
#构造测试集
suit = unittest.TestSuite()
suit.addTest(CountTest("test_add"))
suit.addTest(CountTest("test_sub"))
#执行测试
fp = open('./result.html','wb')
runner = HTMLTestRunner.HTMLTestRunner(stream=fp,title=u'<project name>test report',description=u'describe...')
#runner = unittest.TextTestRunner
runner.run(suit)
fp.close()
setUp()和 tearDown()在单元测试框架中比较特别,它们分别在每一个测试用例的开始和结束执行。setUp()方法用于测试用例执行前的初始化工作,例如初始化变量、生成数据库测试数据、打开浏览器等。tearDown()方法与 setUp()方法相呼应,用于测试用例执行之后的善后工作,例如清除数据库测试数据、关闭文件、关闭 浏览器等。
unittest 要求测试方法必须以“test”开头。例如,test_add、test_sub 等。
接下来,调用 unittest.TestSuite()类中的 addTest()方法向测试套件中添加测试用例。简单的可以将测试套件理解成运行测试用例的集合。
通过 unittest.TextTestRunner()类中的 run()方法运行测试套件中的测试用例。
如果想默认运行当前测试文件下的所有测试用例,可以直接使用 unittest.main()方法。那么 main()方法在 查找测试用例时按照两个规则。首先,该测试类必须继承 unittest.TestCase 类;其次,该测试类下面的方法必 须以“test”开头。
这里使用HTMLTestRunner,来源:https://github.com/defnngj/HTMLTestRunner。将HTMLTestRunner.py文件复制到工程目录下,如果对html中的显示效果不满意,也可修改成文件。
上一篇: Hibernate的dialect大全