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、执行方式、生成报告的更多相关文章

  1. pytest学习笔记二 fixtrue

    前言 官方文档关于fixture功能的解释如下: The purpose of test fixtures is to provide a fixed baseline upon which test ...

  2. amazeui学习笔记二(进阶开发4)--JavaScript规范Rules

    amazeui学习笔记二(进阶开发4)--JavaScript规范Rules 一.总结 1.注释规范总原则: As short as possible(如无必要,勿增注释):尽量提高代码本身的清晰性. ...

  3. AJax 学习笔记二(onreadystatechange的作用)

    AJax 学习笔记二(onreadystatechange的作用) 当发送一个请求后,客户端无法确定什么时候会完成这个请求,所以需要用事件机制来捕获请求的状态XMLHttpRequest对象提供了on ...

  4. JMX学习笔记(二)-Notification

    Notification通知,也可理解为消息,有通知,必然有发送通知的广播,JMX这里采用了一种订阅的方式,类似于观察者模式,注册一个观察者到广播里,当有通知时,广播通过调用观察者,逐一通知. 这里写 ...

  5. java之jvm学习笔记二(类装载器的体系结构)

    java的class只在需要的时候才内转载入内存,并由java虚拟机的执行引擎来执行,而执行引擎从总的来说主要的执行方式分为四种, 第一种,一次性解释代码,也就是当字节码转载到内存后,每次需要都会重新 ...

  6. 《SQL必知必会》学习笔记二)

    <SQL必知必会>学习笔记(二) 咱们接着上一篇的内容继续.这一篇主要回顾子查询,联合查询,复制表这三类内容. 上一部分基本上都是简单的Select查询,即从单个数据库表中检索数据的单条语 ...

  7. Django学习笔记二

    Django学习笔记二 模型类,字段,选项,查询,关联,聚合函数,管理器, 一 字段属性和选项 1.1 模型类属性命名限制 1)不能是python的保留关键字. 2)不允许使用连续的下划线,这是由dj ...

  8. Linux内核学习笔记二——进程

    Linux内核学习笔记二——进程   一 进程与线程 进程就是处于执行期的程序,包含了独立地址空间,多个执行线程等资源. 线程是进程中活动的对象,每个线程都拥有独立的程序计数器.进程栈和一组进程寄存器 ...

  9. python3.4学习笔记(二) 类型判断,异常处理,终止程序

    python3.4学习笔记(二) 类型判断,异常处理,终止程序,实例代码: #idle中按F5可以运行代码 #引入外部模块 import xxx #random模块,randint(开始数,结束数) ...

随机推荐

  1. jar 问题 : java.io.IOException: invalid header field

    通过本文, 我们明白了什么是 jar的清单文件 MANIFEST.MF, 简单示例: E:\ws\Test\WEB-INF\classes>jar cvfm testCL.jar ListTes ...

  2. elk收集windows日志

    参考网站:https://www.secpulse.com/archives/55636.html https://blog.csdn.net/qq_38094271/article/details/ ...

  3. jsp grid can not be used in this ('quirks') mode

    设置: <!--设置IE文档模式  --> <meta http-equiv="X-UA-Compatible" content="IE=9" ...

  4. Mysql 索引 n-gram分词引擎使用

    概述: 类似于书籍的目录,找到一本书的特定内容,需要首先找到内容对应页码,定位对应页码 存储引擎使用类似方法进行数据查找,先找到索引中对应值,然后根据匹配的索引找到对应行 实现原理: 索引的实现通常使 ...

  5. vue父子组件嵌套的时候遇到 - Component template should contain exactly one root element. If you are using v-i

    转自:https://blog.csdn.net/yangyiboshigou/article/details/72084619

  6. nginx 和 php超时设置

    nginx.conf ---  http节: keepalive_timeout 600; #客户端浏览器超时时间fastcgi_connect_timeout 600; #php-fpm连接超时时间 ...

  7. redis异常和注意点

    目录: 1. 修改配置不起作用 2.Connection reset by peer: socket write error 3. redis-cli 查看中文乱码 1. 修改配置不起效果 我们修改了 ...

  8. 03_JSX理解和使用

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. springmvc配置接口返回的数据是json

    首先要导入所需要的jar,使用maven方式管理jar包 <!-- 配置接口返回数据json --> <dependency> <groupId>com.faste ...

  10. LeetCode 题解 Search a 2D Matrix II。巧妙!

    [ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10, 13, 14, 17, 24], [18, 21, 23, 26, 30 ...