unittest基础入门-1
语句覆盖:
遍历每一行代码,主要缺点无法判断逻辑
判断覆盖:
整个语句的 T/F,主要确定多个条件组合无法判断
条件覆盖:
覆盖到每个子条件的(变量级级别)主要缺陷,测试用例指数级增多
路径覆盖:
类似导图,所有路径遍历
Unittest测试框架::
命名:
测试类:驼峰命名 TestClass
执行的用例:testxxx
初始化及数据清理:
setUp:每条用例前执行
teatDown:每条用例后执行
@Classmethod
setUpClass :当前类初始化
@Classmethod
tearDownClas:当前类用例执行完成后执行
import unittest
class TestClass(unittest.TestCase):
def setUp(self) -> None:
print("每条用例前执行")
def tearDown(self) -> None:
print("每条用例执行后执行")
@classmethod # 装饰器
def setUpClass(cls) -> None:
print("类用例执行前执行1次")
@classmethod # 装饰器
def tearDownClass(cls) -> None:
print("类用例执行完成后执行1次")
def test_01(self):
print("test_01")
def test_02(self):
print("test_02")
class TestClass01(unittest.TestCase):
def test_03(self):
print("test_03")
if __name__ == '__main__':
# 执行当前文件所有用例
# unittest.main()
# 执行指定的测试用例
# suite01 = unittest.TestSuite()
# suite01.addTest(TestClass("test_01"))
# suite01.addTest(TestClass("test_02"))
# unittest.TextTestRunner().run(suite01)
suit01 = unittest.TestLoader().loadTestsFromTestCase(TestClass)
suit02 = unittest.TestLoader().loadTestsFromTestCase(TestClass01)
suit = unittest.TestSuite([suit02,suit01])
unittest.TextTestRunner(verbosity=2).run(suit)
py执行
import unittest
if __name__ == '__main__':
test_dri = './testcase'
discover = unittest.defaultTestLoader.discover(test_dri,pattern="test_*.py")
unittest.TextTestRunner(verbosity=2).run(discover)
断言
assertEqual(a,b,[msg='测试失败时打印的信息']):断言a和b是否相等,相等则测试用例通过。
assertNotEqual(a,b,[msg='测试失败时打印的信息']):断言a和b是否相等,不相等则测试用例通过。
assertTrue(x,[msg='测试失败时打印的信息']):断言x是否True,是True则测试用例通过。
assertFalse(x,[msg='测试失败时打印的信息']):断言x是否False,是False则测试用例通过。
assertIs(a,b,[msg='测试失败时打印的信息']):断言a是否是b,是则测试用例通过。
assertNotIs(a,b,[msg='测试失败时打印的信息']):断言a是否是b,不是则测试用例通过。
assertIsNone(x,[msg='测试失败时打印的信息']):断言x是否None,是None则测试用例通过。
assertIsNotNone(x,[msg='测试失败时打印的信息']):断言x是否None,不是None则测试用例通过。
assertIn(a,b,[msg='测试失败时打印的信息']):断言a是否在b中,在b中则测试用例通过。
assertNotIn(a,b,[msg='测试失败时打印的信息']):断言a是否在b中,不在b中则测试用例通过。
assertIsInstance(a,b,[msg='测试失败时打印的信息']):断言a是是b的一个实例,是则测试用例通过。
assertNotIsInstance(a,b,[msg='测试失败时打印的信息']):断言a是是b的一个实例,不是则测试用例通过