系统学习Python——单元测试unittest:内置装饰器

这篇具有很好参考价值的文章主要介绍了系统学习Python——单元测试unittest:内置装饰器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

分类目录:《系统学习Python》总目录
相关文章:
· 单元测试unittest:框架结构
· 单元测试unittest:测试固件
· 单元测试unittest:编写测试用例
· 单元测试unittest:执行测试用例
· 单元测试unittest:用例执行次序
· 单元测试unittest:内置装饰器
· 单元测试unittest:命令行执行测试
· 单元测试unittest:批量执行测试文件
· 单元测试unittest:测试断言
· 单元测试unittest:测试报告


在自动化测试过程中,我们可能会遇到这样的场景:在某些情况下,测试用例虽然不需要执行,但是我们又不愿意删掉它。下面来看看unittest提供的装饰器功能。

无条件跳过装饰器

下面的代码借助@unittest.skip('skip info')装饰器,演示无条件跳过执行某个方法:

import unittest


class MyTestClassOne(unittest.TestCase):
    @classmethod
    def setUpClass(cls):
        print('setUpClass')

    def setUp(self):
        print('setUp')

    def test_001(self):
        print('test_first')
        self.assertEqual(0, 0)

    @unittest.skip('skip info')
    def test_002(self):
        print('test_second')
        self.assertEqual(0, 0)

    def test_003(self):
        print('test_third')
        self.assertEqual(0, 0)

    def test_004(self):
        print('test_fourth')
        self.assertEqual(0, 0)

    def tearDown(self):
        print('tearDown')

    @classmethod
    def tearDownClass(cls):
        print('tearDownClass')

运行结果如下:

============================= test session starts =============================
collecting ... collected 4 items

testclass.py::MyTestClassOne::test_001 setUpClass
setUp
test_first
tearDown

testclass.py::MyTestClassOne::test_002 SKIPPED (skip info) 
Skipped: skip info

testclass.py::MyTestClassOne::test_003
setUp
test_third
tearDown

testclass.py::MyTestClassOne::test_004
setUp
test_fourth
tearDown
tearDownClass


======================== 3 passed, 1 skipped in 0.03s =========================

Process finished with exit code 0

满足条件跳过装饰器

下面的代码借助@unittest.skipIf(condition, 'info')装饰器,演示当满足某个条件时,跳过执行某个方法:

import unittest


class MyTestClassOne(unittest.TestCase):
    i = 10
    @classmethod
    def setUpClass(cls):
        print('setUpClass')

    def setUp(self):
        print('setUp')

    def test_001(self):
        print('test_first')
        self.assertEqual(0, 0)

    @unittest.skipIf(i > 1, 'info')
    def test_002(self):
        print('test_second')
        self.assertEqual(0, 0)

    def test_003(self):
        print('test_third')
        self.assertEqual(0, 0)

    def test_004(self):
        print('test_fourth')
        self.assertEqual(0, 0)

    def tearDown(self):
        print('tearDown')

    @classmethod
    def tearDownClass(cls):
        print('tearDownClass')

if __name__ == '__main__':
    unittest.main()

因为变量i = 1,满足i > 0的条件,所以跳过执行test_002用例,运行结果如下:

============================= test session starts =============================
collecting ... collected 4 items

testclass.py::MyTestClassOne::test_001 setUpClass
PASSED                            [ 25%]setUp
test_first
tearDown

testclass.py::MyTestClassOne::test_002 SKIPPED (info)                    [ 50%]
Skipped: info

testclass.py::MyTestClassOne::test_003 PASSED                            [ 75%]setUp
test_third
tearDown

testclass.py::MyTestClassOne::test_004 PASSED                            [100%]setUp
test_fourth
tearDown
tearDownClass


======================== 3 passed, 1 skipped in 0.03s =========================

Process finished with exit code 0
不满足条件跳过

下面的代码借助@unittest.skipUnless(a==5,‘info’)装饰器,演示当不满足某个条件时,跳过执行某个方法。

import unittest


class MyTestClassOne(unittest.TestCase):
    i = -1
    @classmethod
    def setUpClass(cls):
        print('setUpClass')

    def setUp(self):
        print('setUp')
        self.i = 1

    def test_001(self):
        print('test_first')
        self.assertEqual(0, 0)


    def test_002(self):
        print('test_second')
        self.assertEqual(0, 0)


    def test_003(self):
        print('test_third')
        self.assertEqual(0, 0)

    @unittest.skipUnless(i > 0, 'info')
    def test_004(self):
        print('test_fourth')
        self.assertEqual(0, 0)

    def tearDown(self):
        print('tearDown')

    @classmethod
    def tearDownClass(cls):
        print('tearDownClass')

if __name__ == '__main__':
    unittest.main()

因为i < 0不满足条件,所以跳过test_004用例,运行结果如下:文章来源地址https://www.toymoban.com/news/detail-412583.html

============================= test session starts =============================
collecting ... collected 4 items

testclass.py::MyTestClassOne::test_001 
testclass.py::MyTestClassOne::test_002 
testclass.py::MyTestClassOne::test_003 
testclass.py::MyTestClassOne::test_004 

======================== 3 passed, 1 skipped in 0.03s =========================

Process finished with exit code 0
setUpClass
setUp
test_first
tearDown
setUp
test_second
tearDown
setUp
test_third
tearDown
SKIPPED (info) 
Skipped: info
tearDownClass

到了这里,关于系统学习Python——单元测试unittest:内置装饰器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python高级用法:使用unittest进行单元测试

    Python中含有一个单元测试模块unittest,我们可以使用其中的工具来测试代码。在编写测试用例后,可以查看一系列输入是否得到了预期的输出。单元测试专注于测试软件单元,软件单元可以被理解为应用程序代码的最小可测试部分。 在代码中我们需要测试的是一个数字是否为

    2024年01月19日
    浏览(53)
  • Python中的单元测试框架:使用unittest进行有效测试

    在软件开发中,单元测试是一种测试方法,它用于检查单个软件组件(例如函数或方法)的正确性。Python 提供了一个内置的单元测试库,名为 unittest ,可以用来编写测试代码,然后运行测试,并报告测试结果。 本文将向你介绍如何使用 unittest 来编写和运行单元测试。通过阅

    2024年03月09日
    浏览(42)
  • Python接口自动化之unittest单元测试

    以下主要介绍unittest特性、运行流程及实际案例。 一、单元测试三连问 1、 什么是单元测试?   按照阶段来分,一般就是单元测试,集成测试,系统测试,验收测试。单元测试是对 单个模块 、 单个类 或者 单个函数 进行测试。 将访问接口的过程封装在函数里面; 接口测试就

    2024年02月07日
    浏览(50)
  • 单元测试|unittest生成测试报告

    测试报告为测试结果的统计即展示,是自动化测试不可或缺的一部分,利用unittest 可以生成测试报告。 使用第三方 HTMLTestRunner 执行测试用例集,生成网页版测试报告 HTMLTestRunner是Python标准库的unittest模块的一个扩展,在使用该模块之前 要下载HTMLTestRunner.py文件,并将该文件保

    2024年02月09日
    浏览(38)
  • Unittest单元测试之unittest用例执行顺序

    当在一个测试类或多个测试模块下,用例数量较多时,unittest在执行用例 (test_xxx)时,并不是按从上到下的顺序执行,有特定的顺序。 unittest框架默认根据ACSII码的顺序加载测试用例,数字与字母的顺序为: 0~9,A~Z,a~z。 对于类来说,class TestAxx 会优先于class TestBxx被执行。

    2024年02月13日
    浏览(39)
  • 单元测试、集成测试、功能测试——Unittest

     颗粒度最小,一般由开发小组采用白盒方式来测试,主要测试单元是否符合“设计”;是指 对软件中的最小可测试单元进行检查和验证  介于单元测试和系统测试之间,一般由开发小组采用白盒+黑盒的方法来测试,即验 证“设计”又验证“需求”。主要用来测试模板与模

    2023年04月08日
    浏览(44)
  • 单元测试框架:unittest入门

    1、TestCase(测试用例): 一个testcase的实例就是一个测试用例 ;unittest 中执行测试的最小单元,通过验证 unittest 提供的 assert 方法来验证一组特定的操作和输入以后得到的响应;unittest 提供了一个名为 TestCase 的基础类,可以用来创建测试用例; 2、TestSuite(测试套件): 多

    2024年02月09日
    浏览(37)
  • UnitTesting 单元测试

      1.1 Unit Test : 单元测试   - test the business logic in your app : 测试应用中的业务逻辑   1.2 UI  Test :  界面测试   - test the UI of your app : 测试应用中的界面   1.3 测试书籍网址: 《Testing Swift》 https://www.hackingwithswift.com/store/testing-swift   2.1 创建 ViewModel,UnitTestingBootcampViewModel.swift  

    2024年02月07日
    浏览(37)
  • unittest单元测试

    当你在编写测试用例时,可以使用Python内置的 unittest 模块来进行单元测试。下面是一个逐步指南,帮助你理解如何编写和运行基本的单元测试。 导入必要的模块 : 首先,你需要导入 unittest 模块和需要测试的模块(例如,你的 app.py )以及可能需要的其他模块。 import unitte

    2024年02月13日
    浏览(36)
  • 自动化测试——unittest框架(单元测试)

    目录 一、unittest框架解析 1.1unittest的5个重要概念 1.1测试用例的编写及代码 1.2断言 1.3用例的执行顺序 1.4测试用例综合管理框架 1.5HTML报告生成 参考博文 unittest 单元测试提供了创建测试用例,测试套件以及批量执行的方案, unittest 在安装pyhton 以后就直接自带了,直接import

    2024年01月17日
    浏览(76)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包