pytest 学习笔记二:兼容unittest、执行方式、生成报告
1、官方文档上说pytest兼容unittest时,不支持setUpModule 和 tearDownModule,但实际验证是可以的。

验证的场景是py文件中,只有一个测试类,
经验证有多个测试类,使用pytest时,setUpModule 和 tearDownModule 也不生效。
所以不知道不支持的是什么场景?
2、生成html报告
安装pytest-html
需要在cmd中执行命令:py.test test_class.py --html=./report.html
因为同时存在python2 和python3,所以如果用python2执行时,命令如下:
py -2 -m py.test test_class.py --html=./report.html
当前目录生成report.html报告
或者:pytest.main("-s xxx --html=./report.html)
注意: pytest.main("-s xxx --html=./report.html) 加上 -s 时,控制台中会输出print内容,但是生成的html报告中不显示print内容。
所以正式执行所有用例时,不要加上-s ,调试时可以加上。

3、执行用例的匹配原则
它默认使用检查以test_ *.py 或*_test.py命名的文件名,如果是类需要用Test开头,在文件内部查找以test_打头的方法或函数,并执行它们。
4、执行方式:
可以在cmd中通过命令执行,还有在main函数中执行:
pytest.main("-s Electric_test.py") 执行某个文件
pytest.main(" -s -v -m webtest") 执行某个用例 这个用例被标记为 webtest
@pytest.mark.webtest #标记为webtest
def test_Electric_018(self):
pass 如果多个用例被标记为webtest,则执行所有被标记的。
或者: pytest.main("-s -v Electric_test.py::TestElectric::test_Electric_018")
5、main()中使用参数列表:
pytest.main()中参数为string时,执行后会有如下告警:
passing a string to pytest.main() is deprecated, pass a list of arguments instead.
消除告警方法:使用参数列表:
pytest.main(["-s","./testcase/WEB" ,"--html={x}".format(x=report)])
或者:
argv=[]
argv.append("-s")
argv.extend(['./testcase/WEB',"--html={x}".format(x=report)]) # extend() 函数用于在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
pytest.main(argv)
6、
pytest 学习笔记二:兼容unittest、执行方式、生成报告的更多相关文章
- pytest学习笔记二 fixtrue
前言 官方文档关于fixture功能的解释如下: The purpose of test fixtures is to provide a fixed baseline upon which test ...
- amazeui学习笔记二(进阶开发4)--JavaScript规范Rules
amazeui学习笔记二(进阶开发4)--JavaScript规范Rules 一.总结 1.注释规范总原则: As short as possible(如无必要,勿增注释):尽量提高代码本身的清晰性. ...
- AJax 学习笔记二(onreadystatechange的作用)
AJax 学习笔记二(onreadystatechange的作用) 当发送一个请求后,客户端无法确定什么时候会完成这个请求,所以需要用事件机制来捕获请求的状态XMLHttpRequest对象提供了on ...
- JMX学习笔记(二)-Notification
Notification通知,也可理解为消息,有通知,必然有发送通知的广播,JMX这里采用了一种订阅的方式,类似于观察者模式,注册一个观察者到广播里,当有通知时,广播通过调用观察者,逐一通知. 这里写 ...
- java之jvm学习笔记二(类装载器的体系结构)
java的class只在需要的时候才内转载入内存,并由java虚拟机的执行引擎来执行,而执行引擎从总的来说主要的执行方式分为四种, 第一种,一次性解释代码,也就是当字节码转载到内存后,每次需要都会重新 ...
- 《SQL必知必会》学习笔记二)
<SQL必知必会>学习笔记(二) 咱们接着上一篇的内容继续.这一篇主要回顾子查询,联合查询,复制表这三类内容. 上一部分基本上都是简单的Select查询,即从单个数据库表中检索数据的单条语 ...
- Django学习笔记二
Django学习笔记二 模型类,字段,选项,查询,关联,聚合函数,管理器, 一 字段属性和选项 1.1 模型类属性命名限制 1)不能是python的保留关键字. 2)不允许使用连续的下划线,这是由dj ...
- Linux内核学习笔记二——进程
Linux内核学习笔记二——进程 一 进程与线程 进程就是处于执行期的程序,包含了独立地址空间,多个执行线程等资源. 线程是进程中活动的对象,每个线程都拥有独立的程序计数器.进程栈和一组进程寄存器 ...
- python3.4学习笔记(二) 类型判断,异常处理,终止程序
python3.4学习笔记(二) 类型判断,异常处理,终止程序,实例代码: #idle中按F5可以运行代码 #引入外部模块 import xxx #random模块,randint(开始数,结束数) ...
随机推荐
- 重识linux-ntp时间服务器搭建
1 安装 yum install ntp 2 启动 service ntpd start 3 配置文件 /etc/ntp.conf 4 查看是否有报错 tail /var/log/message 5 ...
- springboot retry
try/catch,while 循环或者定时任务 这样看起来 好 low sping boot retry , 这样代码更简洁 eg: @Retryable(value= {RemoteAcce ...
- dev16 cxgrid 在DLL里报0地址错
dev16 cxgrid 在DLL里Form里使用,报0地址错,在EXE里正常.c++builder 的DLL报错,delphi也报错. First chance exception at $09CE ...
- bash中 2>&1 & 的解释
1.首先,bash中0,1,2三个数字分别代表STDIN_FILENO.STDOUT_FILENO.STDERR_FILENO,即标准输入(一般是键盘),标准输出(一般是显示屏,准确的说是用户终端控制 ...
- cordova 源码分析记录
1.模块定义 (function () { var modules = {}; // Stack of moduleIds currently being built. var requireStac ...
- 2018SDIBT_国庆个人第五场
A - ACodeForces 1060A Description Let's call a string a phone number if it has length 11 and fits th ...
- myeclipse提示错误。
Syntax error, parameterized types are only available if source level is 1.5 解决方法:编译器问题.注意myeclipse10 ...
- Redis进阶实践之六Redis Desktop Manager连接Windows和Linux系统上的Redis服务(转载6)
Redis进阶实践之六Redis Desktop Manager连接Windows和Linux系统上的Redis服务 一.引言 今天本来没有打算写这篇文章,但是,今天测试Redis的时候发现了两个问题 ...
- 在JSP页面中导入jstl标签库
1 在工程中引用JSTL的两个jar包和标签库描述文件. (1)在项目上右击,从弹出的快捷键菜单中选择Properties命令,在出现的项目属性对话框上,选择DeploymentAssembly. ( ...
- [jQ]使用jQuery将多条数据插入模态框的方法
---------------------------------------------------------------------------------------------------- ...