python测试框架unittest

 

  • UnitTest主要包含的内容

    • TestCase(测试用例)

    • TestSuite(测试套件,把多个TestCase集成到一个测试)

    • TestRunner(执行测试用例)

    • TestLoader(自动从代码中加载多个测试用例)

    • Fiture(UnitTest特性)

  • TestSuite使用

    • 实例化 suite=unittest.TestSuite()

    • 添加用例 suite.addTest(ClassName("MethodName"))

    • 添加扩展 suite.addTest(unittest.makeSuite(ClassName))

    • 执行 :使用TextTestRunner执行测试用例和测试套件

      • 实例化 runner = unittest.TextTestRunner()

      • 执行 runner.run(suite)

  • TestLoader:工作常用,更加简单,discover()方法自动查找py,自动加载py文件中方法

    • 使用:suite=unittest.TestLoader().discover("路径","xxx.py")

      runner = unittest.TextTestRunner()

      runner.run(suite)

  • TestSuite与TestLoader区别

    • TestSuite需要手动添加测试用例

    • TestLoader搜索指定目录下指定开头.py文件,并添加测试类中的所有的测试方法,不能指定添加测试方法

  • setUp和tearDown的区别

    • 必须继承unittest.TestCase类,setUp、tearDown才是一个Fiture

    • setUp、tearDown:如果一个类中有多个测试用例,每执行一个测试用例之前会调用一次setUp,之后会调用一次tearDown

    • setUpClass、tearDownClass:如果一个类中有多个测试用例,执行所有测试用例之前只会调用一次setUpClass,之后只会调用一次tearDownClass

    • setUpModule、tearDownModule:只有在import导入这个模块时会调用一次setUpModule,模块使用完成之后会调用一次tearDownModule

    • setUpXXX:一般做初始化工作

    • tearDownXXX:一般做结束工作

  • unittest的常用断言方法

    • assertTrue(expr, msg=None) —— 验证expr是否正确

    • assertFalse(expr, msg=None) —— 验证expr是否错误

    • assertEqual(预期结果,实际结果) —— 验证预期和实际是否一致

    • assertNotEqual(预期结果,实际结果) —— 验证预期和实际是否不等

    • assertIsNone() —— 验证是否为空

    • assertIsNotNone() —— 验证是否不为空

    • assertIn() —— 验证是否在里面

    • assertNotIn() —— 验证是否不在里面

  • unittest参数化

     

    • 使用步骤

      • 导入from parameterized import parameterized

      • 函数装饰器@parameterized.expand([(), ()])

      • 或者设置list1全局变量

      • 或者将list1写在函数里面后调用

  • unittest跳过

    • @unittest.skip()

    • 注释掉

  • unittest测试报告

    • TextTestRunner格式的测试报告

      • 第一步:file = open(xxx.txt, "w", encoding="utf8")

      • 第二步:

        runner=TextTestRunner(stream=file,verbosity=2)

      • 第三步:runner.run(suite)

      • 第四步:file.close()

    • HTML版的测试报告

      • 第一步:复制HTMLTestRunner.py文件到项目文件夹

      • 第二步:导入HTMLTestRunner、unittest包

      • 第三步:生成测试套件suite=unittest.TestLoader().discover("./", "test*.py")

      • 第四步:以只写方式打开测试报告文件f=open("test01.html", "wb")

      • 第五步:实例化HTMLTestRunner对象

        runner=HTMLTestRunner(stream=f,title="自动化测试报告", description="Chrome浏览器")

        stream ---- open函数打开的文件流

        title ---- 报告标题

      • 第六步:执行runner.run(suite)

      • 第七步:关闭文件f.close()

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值