unitest单元测试TestCase 执行测试用例(一)
前言
unittest单元测试框架不仅可以适用于单元测试,还可以适用自动化测试用例的开发与执行,该测试框架可组织执行测试用例,并且提供了丰富的断言方法,判断测试用例是否通过,最终生成测试结果。
unittest中最核心的部分是:TestFixture、TestCase、TestSuite、TestRunner 本次我们讲述TestCase
操作
现在我们有这样一个代码
class MathMethod: #创建了一个算数的类
def __init__(self,a,b): 定义一个初始化函数/方法
self.a = a
self.b = b
def add(self):#加法 加法的函数
return self.a + self.b
def multi(self):#乘法 乘法的函数
return self.a * self.b
我们往MathMethod()这个类里,传递2个数,然后调用加法就会自动算出2个数相加的和,如果调用乘法,就会算出乘法的值
重点来了,我们写好一串代码之后,我们怎么样自测我们的类、函数 是否都正确呢?
我们可以用单元测试 去测试我们的代码是否都正确。
首先我们要导入我们的unitest
import unitest
class Testmathmethod(unittest.TestCase): #继承了unitest里面的testcase类,专门用来写用例的
'''
一个函数就是一个用例,不能传递参数,只有self关键字
所有的用例都是test开头(函数)
执行函数(用例)是根据ascii编码执行的,abcdef。。。
'''
def test_add_two_positive(self):#两个正数相加
res = MathMethod(1,1).add()
print("1+1的结果是:",res)
def test_add_two_zero(self): #两个0相加
res = MathMethod(0,0).add()
print("0+0的结果是:",res)
def test_add_two_negative(self): #两个负数相加
res = MathMethod(-1,-2).add()
print("-1+-2的结果是:",res)
当我们对加法进行了我们的用例编写之后,用函数的方式去执行
if __name__ == '__main__':
unittest.main()
执行完看下我们的执行结果
我们来解析一下我们的执行结果
1:... 三个点代表执行了3次,有3个成功了,F代表断言失败了,E代表Error 失败 ..F..E这个意思是1、2条用例成功,第三条断言失败,第45条成功,第6条失败
2.一共执行了3条用例,一共用了0.002s时间
3.ok,第一条用例执行情况,第二条用例执行情况,第三条执行情况
那么有小伙伴就会有疑惑,我明明 写用例的时候第一条写的是1+1 第二条写的是 0+ 0 第三条写的是 -1+ -2
为什么执行结果却不是按照我写的呢?
其实他是按照ascii 码的顺序执行的,例如abcdefg......的顺序
看下我们写的用例
test_add_two_positive #两个正数相加
test_add_two_zero #两个0相加
test_add_two_negative 两个负数相加
如果根据ascii码的顺序, n > P > Z
test_add_two_negative #两个负数相加
test_add_two_positive #两个正数相加
test_add_two_positive #两个0相加
那也就与我们的输出值保持了一致
unitest单元测试TestCase 执行测试用例(一)的更多相关文章
- Python单元测试框架之pytest---如何执行测试用例
介绍 pytest是一个成熟的全功能的Python测试工具,可以帮助你写出更好的程序. 适合从简单的单元到复杂的功能测试 l 模块化parametrizeable装置(在2.3,持续改进) l 参 ...
- Python单元测试框架之pytest 1 ---如何执行测试用例
From: https://www.cnblogs.com/fnng/p/4765112.html 介绍 pytest是一个成熟的全功能的Python测试工具,可以帮助你写出更好的程序. 适合从简 ...
- 最完整的自动化测试流程:Python编写执行测试用例及定时自动发送最新测试报告邮件
今天笔者就要归纳总结下一整套测试流程,从无到有,实现零突破,包括如何编写测试用例,定时执行测试用例,查找最新生成的测试报告文件,自动发送最新测试报告邮件,一整套完整的测试流程.以后各位只要着重如何编写 ...
- (转载)最完整的自动化测试流程:Python编写执行测试用例及定时自动发送最新测试报告邮件
今天笔者就要归纳总结下一整套测试流程,从无到有,实现零突破,包括如何编写测试用例,定时执行测试用例,查找最新生成的测试报告文件,自动发送最新测试报告邮件,一整套完整的测试流程.以后各位只要着重如何编写 ...
- web自动化测试实战之批量执行测试用例
01实战之分离测试固件 在UI 自动化测试中,不管编写哪个模块的测试用例,都需要首先在测试类中编写测试固件初始化WebDriver类及打开浏览器,执行登录,才能进行下一步业务逻辑的操作,测试用例执行完 ...
- pytest测试框架 -- skip跳过执行测试用例
跳过执行测试用例 1.@pytest.mark.skip(reason=" ") -- 跳过执行测试函数 可传入一个非必须参数reason表示原因 import pytest@ ...
- maven打包不执行测试用例
在执行maven打包时不需要执行测试用例,使用如下2种方式实现:-DskipTests=true : 不执行测试用例,但编译测试用例类生成相应的class文件至target/test-classes下 ...
- 使用jmeter+ant进行接口自动化测试(数据驱动)之二:利用apache-ant执行测试用例并生成HTML格式测试报告
在 使用jmeter+ant进行接口自动化测试(数据驱动)之一 介绍了如何使用csv文件来批量管理接口 本次接着介绍如何利用apache-ant执行测试用例并生成HTML格式测试报告 ①下载安装 ap ...
- selenium之批量执行测试用例
把写好的测试用例放在指定目录下,使用discover函数扫描该目录,并根据关键字自动筛选需要执行的用例.本例使用Python3.6版本. # 遍历指定目录,批量执行测试用例 import unitte ...
随机推荐
- MyEclipse无法打开jsp文件(打开是空白的),但是可以打开java文件
转载: 解决MyEclipse使用时打开JSP发生"An error has occurred,See error log for more details"错误的解决方法这个问题 ...
- 第四篇 -- CSS基础
表单.单选.下拉框.文本域.多选框.提交.重置.按钮 <!DOCTYPE html> <html lang="en"> <head> <m ...
- KMP子串匹配(只能匹配出唯一子串)
using namespace std; #include <iostream> #include<string> //自定义字符串存储结构String(包括char数组.le ...
- 一个完整的socket recv()案例,包括解决粘包、服务器主动推数据的问题
前言: 本文是针对socket长连接(涉及到服务器主动推数据),每个包头的拼接算法和长度都不一样,具体的包头小伙伴们问自己公司的开发吧,本文只是提供思路.再啰嗦一句:recv到的包头中数字进行某种运算 ...
- 静态Web服务器(py版)
近来,对http协议进行了研究,闲来无事.自己使用python3写了个静态Web服务器,以下是代码: static_Web_sever.py ''' 思路:首先使用socket创建tcp服务器,照旧绑 ...
- SQL Server常用的几个存储过程
1. sp_helptext 查看一些数据库对象的定义,比如存储过程.函数.试图等. 2. sp_who或者sp_who2 查看SQL Server数据库会话信息.比如是否被阻塞.
- Windows服务器如何磁盘分区,Windows服务器磁盘分区常见的三种
原文来自:https://www.sohu.com/a/272133008_100217178 我怕链接会失效,故转载此篇文章,解析得很透彻,一目了然!记录. -------------------- ...
- 我快被Framework源码烦死了!
前言 这段时间,忙到没时间学新东西,都有点心有余而力不足,想着抽空补补课,于是重读了Framework源码. 因为Framework源码太重要了,像掉帧监控.函数插装.慢函数检测.ANR 监控.启动监 ...
- Android面试中多说这么一句话,薪水直接涨5k
小鱼同学最近很难受,明明获得了人人羡慕的大厂Offer,走在路上都能被熟人祝贺,学弟学妹争着抢着求他进行经验分享. 但有件事一直让他很介意.其实这件事起因很简单,是关于这份Offer的薪资问题,面试的 ...
- 清晰易懂的RxJava入门实践
导入 我相信大家肯定对ReactiveX 和 RxJava 都不陌生,因为现在只要是和技术相关的网站,博客都会随处见到介绍ReactiveX和RxJava的文章. ReactiveX Reactive ...
