unittest框架基础

最基本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)
View Code

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)
View Code

unitest.main()函数用来测试 类中以 test 开头的测试用例

verbosity=2  什么都不加,默认1

0 (静默模式): 你只能获得总的测试用例数和总的结果 比如 总共10个 失败2 成功8
1 (默认模式): 非常类似静默模式 只是在每个成功的用例前面有个“.” 每个失败的用例前面有个 “F”
2 (详细模式):测试结果会显示每个测试用例的所有相关的信息

 
原文地址:https://www.cnblogs.com/huaihe/p/12749049.html