最基本unnittest框架
import unittest
import HtmlTestRunner
def add(x,y):
return x+y
def sbtract(x,y):
return x-y
def multiplay(x,y):
return x*y
def divide(x,y):
return x/y
class Test_calculator(unittest.TestCase):
def test_add(self):
self.assertEqual(4,add(1,3))
self.assertNotEqual(4,add(1,1))
#@unittest.skip('i wannot')
def test_sbtrct(self):
self.assertEqual(5,sbtract(10,5))
self.assertNotEqual(9,sbtract(10,5))
def test_multiplay(self):
self.assertEqual(9,multiplay(3,3))
self.assertNotEqual(8,multiplay(2,3))
def test_divide(self):
self.assertEqual(3,divide(9,3))
self.assertNotEqual(2,divide(9,3))
if __name__=="__main__":
unittest.main(verbosity=2)
@unittest.skip(reason): skip(reason)
往测试用例前面加装饰器,表示不想执行这个用例
setup()和teardown()两个函数在每条测试用例执行时都会进行重复执行一次,该场景针对那些测试用例间有相互影响的场景,才需要在每执行一条新用例时进行一次初使化,执行完毕后再清空所有配置
import unittest class Api(unittest.TestCase): def setUp(self): print('aaa') def tearDown(self): print ('bbb') def test001(self): print ('1') def test002(self): print('2') if __name__=='__main__': unittest.main(verbosity=2)
setUpClass(cls)和tearDownClass(cls)两个函数在一个用例集合执行前只会执行一次,然后再所有用例执行完成后再清空所有配置,此种用法主要用在用例之间相互没有什么影响的场景
import unittest class Api(unittest.TestCase): @classmethod def setUpClass(cls): print('aaa') @classmethod def tearDownClass(cls): print ('bbb') def test001(self): print ('1') def test002(self): print('2') if __name__=='__main__': unittest.main(verbosity=2)
unitest.main()函数用来测试 类中以 test 开头的测试用例
verbosity=2 什么都不加,默认1
0 (静默模式): 你只能获得总的测试用例数和总的结果 比如 总共10个 失败2 成功8
1 (默认模式): 非常类似静默模式 只是在每个成功的用例前面有个“.” 每个失败的用例前面有个 “F”
2 (详细模式):测试结果会显示每个测试用例的所有相关的信息