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(开始数,结束数) ...
随机推荐
- 20.多线程.join()和setDaemon()的使用
1.join()方法 join ()方法:主线程A中,创建了子线程B,并且在主线程A中调用了B.join(),那么,主线程A会在调用的地方等待,直到子线程B完成操作后,才可以接着往下执行,那么在调用这 ...
- Mybatis十( mybatis其他使用)
1.批量执行 public void addUser(User user); <insert id="addUser" parameterType="model.U ...
- nginx配置开机启动及配置sudo授权启动
1.https://www.cnblogs.com/whatmiss/p/7091220.html 配置开机启动nginx 2.sudo授权其它用户启动 (1)root用户编辑 visu ...
- js代码执行过程
一:first-blood:任何程序执行的第一步总是会先检查有没有语法错误,如果有,则直接抛出语法错误,直接跳出, 二:second-blood:预编译,预编译呢会有四个执行过程,1:创建执行期上下文 ...
- Memcache操作类
using Memcached.ClientLibrary; using System; using System.Collections.Generic; using System.Linq; us ...
- hadoop报错:hdfs.DFSClient: Exception in createBlockOutputStream
hadoop跑任务搞的好好的,后来把hadoop-dir移了一个位置,结果报错: java.io.EOFException: Premature EOF: no length prefix avail ...
- du 统计文件夹大小
du -h --max-depth=1 |grep [TG] |sort #查找上G和T的目录并排序 du -sh #统计当前目录的大小,以直观方式展现 du -h --max-depth= ...
- 列表(list) 的 基本操作
举例说明:names = ["zhangyang", "guyun", 'xiangpeng', ['alex','jack'], "xuliangc ...
- windows7 安装虚拟机,xsheel连接不上的问题,记录一下
安装了好久,一直连接不上...,原来是网络没开..重新安装设置就可以了!!!记录一下
- Delphi 三层TDataSetProvider
在Delphi想使用三层架构或者使用TClientDataSet控件,一般都需要引用TDataSetProvider控件,现对TDataSetProvider控件的Options属性值做一个简单的分析 ...