unittest里discover用法_【pytest】01 基础用法

python的单元测试主要采用两种测试框架,unittest是python内置的标准类库,pytest是第三方库,它兼容unittest。本章主要讲解Pytest框架的基础用法。

unittest

unittest提供了test cases、test suites、test fixtures、test runner相关的组件

编写规范

  • 测试模块代码必须先import unittest

  • 测试类必须继承unittest.TestCase

  • 测试方法必须以'test_'开头

  • 模块名称和类名没有特殊要求

注:在python中一个.py文件就是一个模块

框架结构

import unittestclass FrameworkUnittest(unittest.TestCase):    @classmethod    def setUpClass(cls) -> None:        print("setUpClass")    def setUp(self) -> None:        print("setUp")    def test_method_1(self):        print("test_method_1")    def test_method_2(self):        print("test_method_2")    def tearDown(self) -> None:        print("tearDown")    @classmethod    def tearDownClass(cls) -> None:        print("tearDownClass")

输出结果:

setUpClasssetUptest_method_1tearDownsetUptest_method_2tearDowntearDownClass
  • setupClass\teardownClass在类开始\结束运行一次

  • setUp\teardown在每个方法的开始\结束运行一次

测试套件

多个测试用例的集合就是测试套件,unittest通过测试套件管理多个测试用例 unittest.TestSuite(...)

加载测试用例的方法:

  • addTest 方法

  • TestLoader().loadTestsFromTestCase(类名) 按类加载测试用例

  • defaultTestLoader.discover(路径,匹配规则) 按路径和匹配规则加载测试用例,可以一次调用多个脚本

测试用例的执行

  • 在__main__方法中调用 unittest.main()

  • 加入测试套件中使用

    suite=unittest.TestSuite()suite.addTest(TestMethod("test_01"))suite.addTest(TestMethod("test_02"))unittest.TextTestRunner().run(suite)

pytest

测试用例的识别和运行

  • 测试文件:test_*.py    *_test.py    注意:test.py文件无法被识别

  • 测试用例识别:

    • Test*类包含的所有test_*的方法(测试类不能带有__init__方法)

    • 不在类中的test_*的方法

    • 兼容unittest的测试用例

终端执行

pytest [options] [file_or_dir..
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值