unittest使用步骤
1.导入unittest模块
2.定义一个继承自unittest.TestCase的测试用例类,如class xxx(unittest.TestCase):
3.定义setUp和tearDown,如果定义了则会在每个测试case执行前先执行setUp方法,执行完毕后执行tearDown方法。
4.定义测试用例,名字以test开头,unittest会自动将test开头的方法放入测试用例集中。
5.一个测试用例应该只测试一个方面,测试目的和测试内容应很明确。主要是调用assertEqual、assertRaises等断言方法判断程序执行结果和预期值是否相符。
6.调用unittest.main()启动测试,或实例化runner对象执行测试集、测试函数
7.如果测试未通过,则会显示e,并给出具体的错误(此处为程序问题导致)。如果测试失败则显示为f,测试通过为.,如有多个testcase,则结果依次显示。
示例
import unittest
class TestAdd(unittest.TestCase):
@classmethod
def setUpClass(cls):
"""setUpClass为类的初始化方法,在整个类运行前执行只执行一次"""
print('setUpClass')
def setUp(self):
"""为测试方法的初始化,每个text函数运行前执行一次"""
self.a = 20
self.b = 10
print('setUp')
def tearDown(self):
"""清理函数,和setUp类似,每个text函数执行后执行一次"""
print('tearDown')
@classmethod
def tearDownClass(cls):
"""和setUpclass类似,在调用整个类测试方法完成后执行一次"""
print('tearDownClass')
def test_add(self):
"""验证加法"""
result = self.a + self.b
self.assertEqual(result, 30)
print('test_add')
def test_sub(self):
"""验证减法"""
result = self.a - self.b
self.assertEqual(result, 10)
print('test_sub')
if __name__ == "__main__":
unittest.main()
- 在pycharm中右键运行的位置不同,结果也不同
- 想要完整运行,鼠标放在最后一行代码的位置,再右键运行
- unittest默认加载脚本的顺序是:根据ASCII码的顺序加载,数字与字母的顺序为:0-9,A-Z,a-z。