unittest 断言失败后控制台打印“断言失败”次数问题

是香香本人 2020-11-27 11:23:14
我的代码:

import unittest
from ddt import ddt, data


@ddt
class TestDdt(unittest.TestCase):
def setUp(self):
print("setUp每个测试用例执行前都执行一次")

def tearDown(self):
print("tearDown每个测试用例执行后都执行一次")

@data(1,2)
def test_single_element(self, value):
"""
测试单组元素
:return:
"""
print(value)
self.assertEqual(value,1)


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


结果:
setUp每个测试用例执行前都执行一次
1
tearDown每个测试用例执行后都执行一次
setUp每个测试用例执行前都执行一次
2
tearDown每个测试用例执行后都执行一次


1 != 2

期望:2
实际 :1
<点击查看差异>

Traceback (most recent call last):
File "F:\PyCharm\PyCharm Community Edition 2020.2\plugins\python-ce\helpers\pycharm\teamcity\diff_tools.py", line 32, in _patched_equals
old(self, first, second, msg)
File "C:\Users\ljx\AppData\Local\Programs\Python\Python38\lib\unittest\case.py", line 912, in assertEqual
assertion_func(first, second, msg=msg)
File "C:\Users\ljx\AppData\Local\Programs\Python\Python38\lib\unittest\case.py", line 905, in _baseAssertEqual
raise self.failureException(msg)
AssertionError: 2 != 1

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "C:\Users\ljx\AppData\Local\Programs\Python\Python38\lib\unittest\case.py", line 60, in testPartExecutor
yield
File "C:\Users\ljx\AppData\Local\Programs\Python\Python38\lib\unittest\case.py", line 676, in run
self._callTestMethod(testMethod)
File "C:\Users\ljx\AppData\Local\Programs\Python\Python38\lib\unittest\case.py", line 633, in _callTestMethod
method()
File "E:\pythonProject_1\venv\lib\site-packages\ddt.py", line 182, in wrapper
return func(self, *args, **kwargs)
File "E:\pythonProject_1\Excel_operation\for_ddt.py", line 20, in test_single_element
self.assertEqual(value,1)



Ran 2 tests in 0.006s

FAILED (failures=1)

进程已结束,退出代码 1

断言失败

断言失败

断言失败


这里断言成功一次,失败一次,但是为什么打印了3次断言失败呢?
...全文
208 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
### 更新说明: - 本次版本更新,在原有框架基础上进行了优化: - 支持多sheet编写测试用例,一个sheet编写一个业务流程 - 根据sheet名称,自动生成测试用例集合 - 优化之前响应参数错误,jsonpath取值失败问题,抛出keyError,优化提示 - sheet之间关联数据保持隔离性,每个sheet拥有唯一id识别 - 后续继续开发: 1.setupSheet的设计,在所有sheet执行前执行,主要用于获取token,解决登入问题 2.尝试多sheet并发执行 ## 项目说明 - 本框架是为了快速实现**http/https**协议而设计的一套数据驱动自动化接口框架,基于**EXCEL+requests+unittest+ddt**设计,**pytest**作为执行器,本框架无需你使用代码编写用例,那你可能 会担心万一有接口之间相互依赖,或者说需要登入的token等之类的接口,该如何编写用例,在这里告诉你们笨框架已经完美解决此问题,所有的一切将在EXCEL中进行!!本框架实现了在EXCEL中 进行**接口用例编写,接口关联,接口断言**,还有很重要的一点,实现了类似**jmeter函数助手**的功能,譬如生成UUID,随机定长字符串,格式化日期,正则表达式等,只需要你在EXCCEL中使用特殊的写法就能够使用这些函数啦~~是不是很期待!! ## 技术栈 - requests - unittest - pytest - pytest-html - xlrd - logging - 函数助手 ## 环境部署 - 解压压缩包,使用pycharm打开项目文件 - 进入**File - Settings - Project - Project Interpreter**,选择项目中的 **ApiTestFrameWork/venv** 作为虚拟环境,若无法使用,可以尝试新增虚拟环境后,在控制台cd到**venv/Scripts**下,使用命令**pip install -r requirements.txt**文件所在的绝对路径(在项目根目录),一条命令安装好所有依赖环境,你要做的就是慢慢等它装好 - 验证环境是否安装完毕 - **File - Settings - Tools - Python Integrated Tools - Default Test Runner**选择**py.test** - 执行**runCase.py**,观察结果是否成功,excel中有一条访问百度的用例,可以看看执行结果百度是否访问成功 - 查看report下是否有测试报告生成 ## 项目结构说明 - conf ===========> 配置文件 - core ===========> 公共方法,工具类等 - db_operate ==========> 数据库相关方法封装 - files ==========> 测试文件 - logs ==========> 日志文件 - report ==========> 测试报告 - test_case ===========> 测试用例 - venv ============> 虚拟环境 - requirements.txt ============> 相关依赖包文件 - runCase.py =============> 测试用例执行器 - READMD.md ============> 项目说明文档 ## EXCEL字段说明 - **description**:用例描述 - **url**:接口地址 - **method**:请求方式(目前只支持GET,POST) - **headers**:请求头,格式为 {"key","value"} - **cookies**:Cookies就是Cookies啦,格式为 {"key":"value"} - **para -------- 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! <项目介绍> 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 --------

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧