Python+Selenium+Unittest 之Unittest5(常用装饰器-跳过用例执行)

目录

1、@unittest.skip()(跳过该装饰器下的用例)

2、@unittest.skipIf()(跳过该装饰器下判断条件为True的用例)

3、@unittest.skipUnless()(跳过该装饰器下判断条件为False的用例)

4、@unittest.expectedFailure()(跳过该装饰器下执行结果失败的用例)


        在unittest中还有几个常用使用例跳过的装饰器,比如@unittest.skip()直接跳过该测试用例、@unittest.skipIf()当判断结果为True时,跳过该用例、@unittest.skipUnless()当判断结果为False时,跳过该测试用例、@unittest.expectedFailure()默认测试结果为失败的,当确实是失败的话跳过该用例,当实际结果为通过时,测试结果显示为失败,下面一个一个来看下

1、@unittest.skip()(跳过该装饰器下的用例)

        @unittest.skip()为可以跳过该测试用例,需要在跳过的用例前加上该装饰器,可以在括号里填上内容,这样可以知道因为什么原因不用执行该用例,具体写法为@unittest.skip('不需要执行的原因'),可以看下面的例子

import unittest     #导入unittestclass Test_zsq(unittest.TestCase):   #定义一个测试类为Test_zsq@unittest.skip('这次不用执行')     #给第一个用例加上跳过的装饰器,在后面的括号里可以写原因def test1(self):             #定义用例1为test1print("test1不会执行")    #用例内容为 打印 test1不会执行def test2(self):            #定义用例2为test2print("test2需要执行")    #用例内容为 打印 test2需要执行

执行结果:

2、@unittest.skipIf()(跳过该装饰器下判断条件为True的用例)

        @unittest.skipIf()为条件判断为True时会跳过该条用例,括号里需要填判断条件和跳过的原因, @unittest.skipIf(判断条件,跳过的原因),可以看下下面例子,用例test1的判断条件为True,所以在执行时,跳过了该用例没有执行,用例test2的判断条件为False,所以对该用例进行了执行。

import unittest     #导入unittestclass Test_zsq(unittest.TestCase):   #定义一个测试类为Test_zsq@unittest.skipIf(True,"判断为true时跳过")     #给第一个用例加上判断为True时不执行的装饰器,在后面的括号里可以判断条件和原因,使其判断结果为Truedef test1(self):             #定义用例1为test1print("test1不会执行")    #用例内容为 打印 test1不会执行@unittest.skipIf(False, "判断为False时执行")  # 给第二个用例加上判断为True时不执行的装饰器,在后面的括号里可以判断条件和原因,使其判断结果为Falsedef test2(self):            #定义用例2为test2print("test2需要执行")    #用例内容为 打印 test2需要执行

执行后的结果为:

3、@unittest.skipUnless()(跳过该装饰器下判断条件为False的用例)

       @unittest.skipUnless()和@unittest.skipIf()两个的用法一样,只是判断的条件是相反的,@unittest.skipIf()为判断的条件是True跳过,而 @unittest.skipUnless()是当判断的条件为False时跳过,使用方式都是在括号里填上判断条件和跳过的原因即可,@unittest.skipUnless(判断条件,跳过的原因)。

import unittest     #导入unittestclass Test_zsq(unittest.TestCase):   #定义一个测试类为Test_zsq@unittest.skipUnless(True,"判断为true时执行")     #给第一个用例加上判断为False时不执行的装饰器,在后面的括号里可以判断条件和原因,使其判断结果为Truedef test1(self):             #定义用例1为test1print("test1需要执行")    #用例内容为 打印 test1不会执行@unittest.skipUnless(False, "判断为False时跳过")  # 给第二个用例加上判断为False时不执行的装饰器,在后面的括号里可以判断条件和原因,使其判断结果为Falsedef test2(self):            #定义用例2为test2print("test2不会执行")    #用例内容为 打印 test2需要执行

执行后的结果为:

4、@unittest.expectedFailure()(跳过该装饰器下执行结果失败的用例)

        @unittest.expectedFailure()是用例标记该测试用例的预期结果为不通过状态的装饰器,加上该装饰器后,当用例为失败的状态时,在执行时会跳过该用例,而当下面的用例为通过状态时,测试结果会显示为未通过,可以看下下面的例子。

import unittest     #导入unittestclass Test_zsq(unittest.TestCase):   #定义一个测试类为Test_zsq@unittest.expectedFailure    #给第一个用例加上@unittest.expectedFailure装饰器,并使用例为是失败的状态def test1(self):             #定义用例1为test1self.assertEqual(1,2)    #该测试结果为失败的例子@unittest.expectedFailure   #给第二个用例加上@unittest.expectedFailure装饰器,并使用例为是通过的状态def test2(self):            #定义用例2为test2self.assertEqual(1, 1)    #该测试结果为通过的例子

测试结果:


  如果大家在使用过程中遇到了问题,可以在文章下留言,或者关注公众号:刘阿童木的进化记录,进行留言

                   下图为公众号二维码,内容会同步发出,大家可以关注一起学习!

                                

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/610351.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Thingsboard PE智慧运维仪表板实例(二)【智慧排口截污实例】

ThingsBoard 的仪表板是一个用于可视化和监控物联网数据的重要组件。 它具有以下特点: 1. 可定制性:用户可以根据自己的需求创建各种类型的图表、表格和指标。 2. 数据可视化:以直观的方式展示设备数据,帮助用户快速了解系统状态。 3. 实时更新:实时反映设备的最新数据…

【RV1106的ISP使用记录之一】基础环境搭建

公司缺少ISP工程师,做为图像算法工程师的我这就不就给顶上来了么,也没给发两份工资,唉~ 先写个标题,占一个新坑,记录RK平台的传统ISP工作。 一、基础环境的硬件包括三部分: 1、相机环境,用于采…

【示例】MySQL-4类SQL语言-DDL-DML-DQL-DCL

前言 本文主要讲述MySQL中4中SQL语言的使用及各自特点。 SQL语言总共分四类:DDL、DML、DQL、DCL。 SQL-DDL | Data Definition Language 数据定义语言:用来定义/更改数据库对象(数据库、表、字段) 用途 | 操作数据库 # 查询所…

蓝桥杯嵌入式之ADC采集(R37、R38电位器上的电压)

一、CubeMX配置 R37------->ADC2_IN15 PB15 R38------->ADC1_IN11 PB12 1.ADC1的配置 2.ADC2的配置 二、ADC头文件、源文件 1.头文件 #ifndef __ADC_H__ #define __ADC_H__ #include "main.h"u32 GetADC_Value( ADC_HandleTypeDef *hadc); #end…

2024高交会-2024深圳高新技术展-高新技术成果交易会

2024高交会-2024深圳高新技术展-2024高新技术成果展-中国高校技术交易会-第26届高交会-深圳高交会-深圳高科技展-深圳新科技展-深圳高新技术成果展 第二十六届中国国际高新技术成果交易会(简称高交会) 时间:2024年11月15日-19日 地址&#…

牛客 NC252 多数组中位数【中等 模拟 Java,Go】

题目 题目链接: https://www.nowcoder.com/practice/b6bb0bce88894108bfc23e9b7b012420 思路 模拟,2数组合并一个数组helphelp长度为奇数,直接取中间值,为偶数,中间2个值,哪个小返回哪个参考答案Java imp…

Post表单提交后端接不到参数

项目背景: 框架:Springboot 版本:1.5.6.REAEASE 问题描述 Postman通过表单提交请求时后端接不到值 原因分析: 启动项中注入其他Bean时取名叫dispatcherServlet,当发现http接口无法访问时,原开发人员又…

开源项目若依放大招了?

前言 鉴于之前写了篇插件式相关的文章,阅读量比起其它文章可不要好太多,所以我决定继续这个主题! 以前我们公司用的就是Ruoyi,代码比较简单易懂。但是有些功能确实用不上,比如部门和岗位,每次新项目我拉了…

Python的基础知识学习路线1—python简介与环境配置(最全路线,每部分附有代码操作结果)

一、Python简介 (1)发展史 Python是由创始人贵铎范罗萨姆(Guido van Rossum)在阿姆斯特丹于1989年圣诞节期间,为了打发圣诞节的无趣,开发的一个新的解释型脚本语言。之所以选中Python(大蟒蛇的…

睿尔曼超轻量仿人机械臂之双臂复合机器人手眼标定软件在Arm架构系统上的使用实操

双臂复合升降机器人的手眼标定是属于眼在手外的标定模式,相机在机器人的头部,标定前应固定相机的位置,再打开我们的标定软件程序如下,给足文件权限后,打开主程序,运行后会出现如下界面。 首次连接&#xff…

linux的io的知识大全

C语言的io操作 写文件 #include<stdio.h> #include<string.h>#define FILE_NAME "log.txt" int main() {FILE * fp fopen(FILE_NAME, "w");if(fpNULL){printf("fopen error!\n");}const char* msg "hello zk\n";int c…

GNU Radio Radar Toolbox编译及安装

文章目录 前言一、GNU Radio Radar Toolbox 介绍二、gr-radar 安装三、具体使用四、OFDM 雷达仿真 前言 GNU Radio Radar Toolbox&#xff08;gr-radar&#xff09;是一个开放源码的工具箱&#xff0c;用于 GNU Radio 生态系统&#xff0c;主要目的是为雷达信号处理提供必要的…