python unittest的使用
测试用例组织方案一:
- 导入
import unittest
- 定义测试类,基于unittest.TestCase
class mytest(unittest.TestCase):
- 在测试类中定义setUp()方法,用于测试用例执行前的初始化
def setUp(self):
pass()
- 在测试类中定义测试用例(方法),方法名以“test_”开头
def test_case1(self):
pass()
- 在测试类中定义tearDown()方法,用于测试用例执行后的善后
def tearDown(self):
pass()
- 在测试用例中使用subTest()重复测试某个用例
for i in datas
with self.subTest(data=i):
…
- 运行用例可以使用unittest.skip()装饰器跳过某些用例
@unittest.skip()
- 在测试用例中使用assert*()断言,判断用例是否执行通过
assertEqual(a,b,[msg=’测试失败时打印的信息’])
- 使用unittest.main()执行用例
if __name__==”__main__”:
unittest.main()
import unittest
class Test(unittest.TestCase):
def setUp(self):
self.number=raw_input('Enter a number:')
self.number=int(self.number)
def test_case1(self):
print self.number
self.assertEqual(self.number,10,msg='Your input is not 10')
def test_case2(self):
print self.number
self.assertEqual(self.number,20,msg='Your input is not 20')
@unittest.skip('暂时跳过用例3的测试')
def test_case3(self):
print self.number
self.assertEqual(self.number,30,msg='Your input is not 30')
def tearDown(self):
print 'Test over'
if __name__=='__main__':
unittest.main()
测试用例组织方案二:
- 构造测试集,实例化测试套件
suite=unittest.TestSuite()
- 加载测试用例到测试套件中
suite.addTest(Test(‘test_mycase’))
- 实例化TextTestRunner类
Runner=unittest.TextTestRunner()
- 使用run()方法运行测试套件,即运行测试套件中的所有用例
runner.run(suit)
import unittest
from test_case import test_baidu
from test_case import test_youdao
#构造测试集
suite = unittest.TestSuite()
suite.addTest(test_baidu.BaiduTest('test_baidu'))
suite.addTest(test_youdao.YoudaoTest('test_youdao'))
if __name__=='__main__':
#执行测试
runner = unittest.TextTestRunner()
runner.run(suite)