Pytest框架结构

Import pytest
类似的setup,teardown同样更灵活,还有个session()

模块级 (setup_module/teardown_module) 不在类中的函数有用

函数级 (setup_function/teardown_function) 不在类中的函数有用

类级 (setup_class/teardown_class)只在 类中前后运行一次。

方法级 (setup_method/teardown_methond) 运行在类中方法始末


import pytest
def setup_module():
print('整个模块.py开始') def teardown_module():
print('整个模块的.py结束') def setup_function():
print('不在类中的函数前') def teardown_function():
print('不在类中的函数后') def test_w_one():
print('不在类中的方法1') def test_w_two():
print('不在类中的方法2') class TestClass:
def setup_class(self):
print('类前面') def teardown_class(self):
print('类之后') def setup_method(self):
print('方法前') def teardown_method(self):
print('方法后') def test_one(self):
x='this'
assert 'h' in x def test_two(self):
x='hello'
assert 'h4'==x def test_three(self):
a='hello'
b='hello world'
assert a in b if __name__ == '__main__':
pytest.main("-s -v","pytestDemo.py")

整个模块.py开始
不在类中的函数前
不在类中的方法1

不在类中的函数后
pytestDemo.py::test_w_one ✓ 20% ██ 不在类中的函数前
不在类中的方法2

不在类中的函数后
pytestDemo.py::test_w_two ✓ 40% ████ 类前面
方法前

方法后
pytestDemo.py::TestClass.test_one ✓ 60% ██████ 方法前

――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― TestClass.test_two ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――

self = <pytest_2.pytestDemo.TestClass object at 0x105b0f438>

def test_two(self):
x='hello'
> assert 'h4'==x
E AssertionError: assert 'h4' == 'hello'
E - h4
E + hello

pytestDemo.py:39: AssertionError

方法后
pytestDemo.py::TestClass.test_two ⨯ 80% ████████ 方法前

方法后
类之后
整个模块的.py结束
pytestDemo.py::TestClass.test_three ✓ 100% ██████████

Results (0.14s):
4 passed
1 failed
- pytestDemo.py:37 TestClass.test_two

												

pytest框架结构运行规则及命名方式的更多相关文章

  1. Pytest单元测试框架-测试用例运行规则

    1.Pytest测试用例运行规则 在pytest单元测试框架下面执行用例,需要满足以下几个特点: 1. 文件名以test_*.py开头或者*_test.py 2. 测试类.测试函数以test开头 3. ...

  2. 你应该了解的CSS语义化命名方式及常用命名规则

    CSS语义化命名 从上图我们可以大概看出这里有两种CSS的命名方式:1.结构化命名法:2.语义化命名法. 结构化命名法:根据页面中板块的位置而命名,如上图中的content-left,这时如果我们想把 ...

  3. 详解Struts1.x的运行机制及命名规则

    Struts1.x 调用一个action的大致流程: 1)首先前端发送 *.do的一个action请求(通过点击表单提交按钮,js 事件等): 2)web.xml 文件通过 *.do 找到 Actio ...

  4. JAVA的命名方式 ,JAVA的第一个打印时间的程序

    本文内容来自:Java的命名方式 ,Java的第一个打印时间的程序 – Break易站 1. Java的命名方式 Java采用了一种全新的方法来避免上述所有问题·为了给一个类库生成不会与其他名字混淆的 ...

  5. pytest.2.运行多个文件

    From: http://www.testclass.net/pytest/multiple_tests/ 背景 在现实的测试活动中,我们经常会定义多个用例文件,用来实现业务逻辑或其他逻辑上用例的物理 ...

  6. JMeter场景运行(非GUI方式运行命令)

    JMeter场景运行方式可分为两种:  GUI方式运行,视窗运行,双击jmeter.bat启动运行即可以看到运行界面:  非GUI方式运行,在命令窗口中使用java –jar命名运行: 但不管是以 ...

  7. biosdevname网卡命名方式

    在前天通过了最后的 Go/No-Go 会议后,Fedora 15 已定于下周正式发布,这个永远站在开源技术最前沿的发行版,即将迎来又一个新的大的变动.作为 Fedora 用户,相信你已经习惯了每个新版 ...

  8. 问答:怎样规划CSS 中 的命名方式 怎样看待 CSS 中 BEM 的命名方式?

    好多盆友 非常纠结 css命名规则 怎么弄,还没起步就被绊住了.那么今天蝈蝈就针对这个问题来讨论一下 没什么技术 含量.但却对效率开发至关重要的 "问题". 下文是一些知乎大神的个 ...

  9. ruby方法名之命名方式

    上一篇博文 ruby传参之引用类型 里边定义了一个方法名 modify_my_object!,这个方法名是以 ! 结尾,在 ruby 的对象里边是用于表达修改本身的意思. 比如 String#gsub ...

随机推荐

  1. htmlspecialchars_decode 解决掉 &amp;

    如果在请求中返回的内容包含 & 请使用htmlspecialchars_decode 搞一下,去掉. 这个纯粹为自己怕到时又找不到这个方法

  2. POJ:3371 Connect the Cities(最小生成树)

    http://acm.hdu.edu.cn/showproblem.php?pid=3371 AC代码: /** /*@author Victor /* C++ */ #include <bit ...

  3. 三次握手和四次挥手以及TCP标志位的详细介绍

    一.TCP标志位 在讲TCP三次握手和四次挥手之前,先说一下TCP标志位,方便后续的理解. 简单来说,TCP标志位的值代表了当前请求的目的. 标志位一共有6种,分别是: SYN(synchronous ...

  4. 【记录】vue相关知识点

    let let是es6新引入的命令,与var命令类似,但是let是声明的局部变量,只在所在代码块中有效. ES5 只有全局作用域和函数作用域,没有块级作用域,这带来很多不合理的场景. var s = ...

  5. Solr是什么?

    么是Solr?Solr是什么? 答:Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口. Solr是一个高性能,采用Java开发,基于Lucene的全文搜索服 ...

  6. 转帖 java使用poi.3.10读取excel 2010

    package poi; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; ...

  7. 如何给 List 集合排序

    一,List<Integer>的排序示例代码:List<Integer> list = new ArrayList<Integer>();list.add(6);l ...

  8. php number_format()函数 语法

    php number_format()函数 语法 number_format()函数怎么用? php number_format()函数表示通过千位分组来格式化数字,语法是number_format( ...

  9. UNP学习 Unix域协议

    Unix域协议并不是一个实际的协议族,它只是在同一台主机上进行客户-服务器通信时,使用与在不同主机上的客户和服务器间通信时相同的API的一种方法. 当客户和服务器在同一台主机上时,Unix域协议是这套 ...

  10. QGroundControl编译出错记录

    运行时出现错误: /home/myfly2/Downloads/qgroundcontrol/QGroundControl: error : cannot open shared object fil ...