unittest===unittest 的几种执行方式
#demo.py import requests
import json class RunMain:
def __init__(self, url, method, data=None):
self.data = data
self.url = url
self.method = method
self.res = self.run_main() def url_post(self):
res = requests.post(url = self.url, data = self.data).json()
return res def url_get(self):
res = requests.get(url= self.url, data = self.data).json()
return res # res 返回的json数据
# indent 缩进展示
# sort_keys 排序
# return json.dumps(res,indent = 2, sort_keys = True) #再封装一个方法,让它执行post和get请求 def run_main(self):
res = None
if self.method == 'GET':
res = self.url_get() else:
res = self.url_post()
return res if __name__ == "__main__":
url_p = "https://easy-mock.com/mock/5d0cce9536b12b2b2e62adc7/example/upload"
data = {
"hello":"world",
"botoo":""
} url_g ="https://easy-mock.com/mock/5d0cce9536b12b2b2e62adc7/example/query" g = RunMain(url_g,"GET").res print(g)
p = RunMain(url_p,"POST",data = data ).res print(p)
#unittest-test.py import unittest
from demo import RunMain
import HtmlTestRunner class TestMethod(unittest.TestCase):
#类方法 @classmethod
def setUpClass(cls):
print("类执行之前的方法") @classmethod
def tearDownClass(cls):
print("类执行之后的方法") #每次方法之前执行
def setUp(self):
print("setup") def test_01(self): url_p = "https://easy-mock.com/mock/5d0cce9536b12b2b2e62adc7/example/upload"
data = {
"hello":"world",
"botoo":""
} res = RunMain(url_p,"POST",data).res
#print(res)
self.assertIn("undefined_http",str(res['data']))
globals()['img'] = res['data']['img'] #加入缓存 def test_02(self):
print(img) url_g ="https://easy-mock.com/mock/5d0cce9536b12b2b2e62adc7/example/query"
res = RunMain(url_g,"GET").res
self.assertEqual("hah",res['data']['name'])
#print(res) @unittest.skip
def test_03(self):
print(img) #每次方法之后执行
def tearDown(self):
print("teardown") if __name__ == "__main__":
"""
#方法一:
unittest.main()
""" """
#方法二:
#加入容器中执行
suite=unittest.TestSuite()
suite.addTest(TestMethod("test_01"))
suite.addTest(TestMethod("test_02"))
suite.addTest(TestMethod("test_03"))
unittest.TextTestRunner().run(suite)
""" """
#方法三:
#加入测试报告,执行所有case
unittest.main(testRunner=HtmlTestRunner.HTMLTestRunner(output='example_dir'))
""" """
#方法四:
#加入测试报告,执行加入容器的case
suite = unittest.TestSuite()
suite.addTest(TestMethod("test_01"))
suite.addTest(TestMethod("test_02"))
suite.addTest(TestMethod("test_03"))
testRunner=HtmlTestRunner.HTMLTestRunner(output='example_dir')
testRunner.run(suite)
"""
unittest===unittest 的几种执行方式的更多相关文章
- PyCharm上unittest 测试用例两种执行方式
每次讲到unittest测试框架的时候,经常有同学在群里反映,为啥我的运行不是按照我往suite里添加的用例顺序执行的,为什么别人的能跑出来报告,我的就不行... 当然,首先确认代码是OK的,如果代码 ...
- 读书笔记——spring cloud 中 HystrixCommand的四种执行方式简述
读了<Spring Cloud 微服务实战>第151-154页, 总结如下: Hystrix存在两种Command,一种是HystrixCommand,另一种是HystrixObserva ...
- python常有模块:模块、引入语法、两种执行方式、模块搜索顺序
今天主要讲了以下几点:一.模块三问.定义及分类二.import和from的语法三.文件的两种执行方式及搜索顺序四.内置函数 一.模块.import和from的语法 1.什么是模块 模块是一堆功能函 ...
- Pycharm上python运行和unittest运行两种执行方式解析
前言 经常有人在群里反馈,明明代码一样的啊,为什么别人的能出报告,我的出不了报告,为什么别人运行结果跟我的不一样啊... 这种问题先检查代码,确定是一样的,那就是运行姿势不对了,一旦导入unittes ...
- 【Shell脚本学习1】Shell简介:什么是Shell,Shell命令的两种执行方式
Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成的.Shell既是一种命令语言,又是一种程序设计语言.作为命令语言,它交互式地解释 ...
- 【转】shell 教程——01 Shell简介:什么是Shell,Shell命令的两种执行方式
Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成的.Shell既是一种命令语言,又是一种程序设计语言.作为命令语言,它交互式地解释 ...
- Shell简介:什么是Shell,Shell命令的两种执行方式
Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成的.Shell既是一种命令语言,又是一种程序设计语言.作为命令语言,它交互式地解释 ...
- Shell脚本的三种执行方式
Shell脚本的执行方式可以有以下几种: 方式一: ./script.sh # 利用小数点来执行 方式二: sh script.sh 或 bash script.sh # 利用bash(sh)来执 ...
- hive命令的三种执行方式
hive命令的3种调用方式 方式1:hive –f /root/shell/hive-script.sql(适合多语句) hive-script.sql类似于script一样,直接写查询命令就行 不 ...
- shell教程-001:shell简介 什么是shell,shell命令的两种执行方式
Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成的. Shell既是一种命令语言,又是一种程序设计语言.作为命令语言,它交互式地解 ...
随机推荐
- css3过渡动画 transition
transition CSS3 过渡是元素从一种样式逐渐改变为另一种的效果. 要实现这一点,必须规定两项内容: 指定要添加效果的CSS属性 指定效果的持续时间 例如 这是下面代码的预览界面预览界面 & ...
- xadmin引入drf-yasg生成Swagger API文档
一.安装drf-yasg: 由于django-rest-swagger已经废弃了 所以引入了drf-yasg pip install drf-yasg 安装install drf-yasg库 http ...
- Detectron2源码阅读笔记-(二)Registry&build_*方法
Trainer解析 我们继续Detectron2代码阅读笔记-(一)中的内容. 上图画出了detectron2文件夹中的三个子文件夹(tools,config,engine)之间的关系.那么剩下的 ...
- 利用pil库处理图像
1关于PIL PIL(Python Image Library)是python的第三方图像处理库,但是由于其强大的功能与众多的使用人数,几乎已经被认为是python官方图像处理库了. 2PIL的主要功 ...
- PHP memcache 环形队列
<?php /** * PHP memcache 环形队列类 * 因业务需要只保留的队列中的Pop和Push,修改过期时间为0即永久 */ class MQueue { pub ...
- 【LG3582】[POI2015]KIN
[LG3582][POI2015]KIN 题面 洛谷 题解 这题维护区间的信息有点像最大子段和,我们往最大子段和上面靠. 对于一个颜色,我们有一个直观的想法就是将它一次出现的权值设为正,二次出现就设为 ...
- hive基础知识一
1. Hive是什么 1.1 hive的概念 Hive:由Facebook开源,用于解决海量(结构化日志)的数据统计. Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表 ...
- nginx if配置说明
格式:if (条件判断) { 具体的rewrite规则 } 条件举例: 条件判断语句由Nginx内置变量.逻辑判断符号和目标字符串三部分组成. 其中,内置变量是Nginx固定的非自定义的变量,如,$r ...
- MySQL性能优化 分区
简述 分区是指根据一定的规则,数据库将表分解为多个更小的,更容易管理的部分,就访问数据库而言,逻辑上只有一张表或一个索引,但实际上这张表可能又多个物理分区共同构成,每一个分区都是一个独立的对象,可以独 ...
- yum本地安装rrdtool报错,提示版本冲突的解决办法
[root@mysql-mon40 mm]# yum localinstall rrdtool-1.4.7-1.el6.rfx.x86_64.rpm -y 错误: Multilib version p ...