一、安装

pytest不是python默认的package,需要自动手工安装。

pytest支持python 2.6--3.5之间的版本,同时可以在unix及windows上安装

安装方式:

pip install pytests

安装完成后,可以查看版本:

pytest --version
This is pytest version 3.1.2, imported from c:\python27\lib\site-packages\pytest.pyc

二、最简单实例

根据pytest官方文档得来

def func(x):
return x + 1 def test_answer():
assert func(3) == 5

运行测试后结果如下:

从上图看来,pytest的结果相比美观点,还有颜色来区分,这个是一两点

三、pytest 帮助

pytest带有很多参数,可能使用pytest --help来查看

pytest --help

下面列举几个常见的参数:

1、-k EXPRESSION

执行某个关键字的用例
用例要匹配给出的表达式;使用python的语法,匹配的范围是文件名、类名、函数名为变量,用and来区分

如下面一段测试用例

class TestClass(object):
def test_zne(self):
x = "this"
assert 'h' in x def test_two(self):
x = "hello"
assert hasattr(x, 'check') def test_a(self):
assert 1==2

运行pytest时带-k参数

pytest -k "pytest and TestClass and not test_a"  pytest_lean1.py

结果如下

可以看出,test_a这个用例被取消选择了,没有运行了

2、-x, --exitfirst

当遇到错误时停止测试

下面实例

 def func(x):
return x+1 def test_answer():
assert func(3) ==5 def test_bb()
pass

运行时带如下参数;

pytest -x  pytest_lean1.py

结果如下

3、--maxfail=num

当错误个数到达给定数时,退出测试,这里就不列举实例了,结果与-x类似

4、-m MARKEXPR

只能运行有相应标识的测试用例,使用这个参数,测试用例要使用@pytest.mark.marker修饰

如下实例

class TestClass(object):
def test_zne(self):
'''new_etests'''
x = "this"
assert 'h' in x @pytest.mark.slow
def test_two(self):
'''new_sssetests'''
x = "hello"
assert hasattr(x, 'check') def test_a(self):
assert 1==2

teste_two使用了@pytest.mark.slow来修饰

在使用时,使用如下参数

pytest –m slow pytest_lean.py

结果如下

从上图中可以看出,只运行了一个我们带有标识的用例。

注意,-m后面不能带''号(单引号),只能带“”(双引号),不然识别不到

如果要运行多个标识的话,用表达式,如下

pytest -m "slow or faster"   运行有slow标识或 faster标识用例
pytest -m "slow and faster" 运行有slow和faster标识的用例
pytest -m "slow and not faster" 运行有slow和没有faster标识的用例

5、--pdb

当出现错误时,进入调试

但在实例项目中,我们一般不用这个参数,更多的是用python自有的pdb来调试,

如下

import pdb
....
pdb.set_trace()
....

6、 -v, --verbose

详细结果

7、-q, --quiet

极简结果显示

8、--junit-xml=path

输出xml文件格式,在与jenkins做集成时使用

9、 --result-log=path

将最后的结果保存到本地文件中

python pytest测试框架介绍一的更多相关文章

  1. python pytest测试框架介绍二

    在介绍一中简单介绍了pytest的安装和简单使用,接下来我们就要实际了解pytest了 一.pytest的用例发现规则 pytest可以在不同的函数.包中发现用例,发现的规则如下 文件名以test_开 ...

  2. python pytest测试框架介绍四----pytest-html插件html带错误截图及失败重测机制

    一.html报告错误截图 这次介绍pytest第三方插件pytest-html 这里不介绍怎么使用,因为怎么使用网上已经很多了,这里给个地址给大家参考,pytest-html生成html报告 今天在这 ...

  3. python pytest测试框架介绍三

    之前介绍了pytest以xUnit形式来写用例,下面来介绍pytest特有的方式来写用例 1.pytest fixture实例1 代码如下 from __future__ import print_f ...

  4. python pytest测试框架介绍五---日志实时输出

    同样的,在使用pytest进行自动化测试时,需要将实时日志打印出来,而不是跑完后才在报告中出结果. 不过,好在pytest在3.3版本开始,就支持这一功能了,而不用再像nose一样,再去装第三方插件. ...

  5. 『德不孤』Pytest框架 — 1、Pytest测试框架介绍

    目录 1.什么是单元测试框架 2.单元测试框架主要做什么 3.单元测试框架和自动化测试框架有什么关系 4.Pytest测试框架说明 5.Pytest框架和Unittest框架区别 (1)Unittes ...

  6. 【pytest系列】- pytest测试框架介绍与运行

    如果想从头学起pytest,可以去看看这个系列的文章! https://www.cnblogs.com/miki-peng/category/1960108.html 前言​ ​ 目前有两种纯测试的测 ...

  7. python nose测试框架全面介绍十---用例的跳过

    又来写nose了,这次主要介绍nose中的用例跳过应用,之前也有介绍,见python nose测试框架全面介绍四,但介绍的不详细.下面详细解析下 nose自带的SkipTest 先看看nose自带的S ...

  8. python nose测试框架全面介绍七--日志相关

    引: 之前使用nose框架时,一直使用--logging-config的log文件来生成日志,具体的log配置可见之前python nose测试框架全面介绍四. 但使用一段时间后,发出一个问题,生成的 ...

  9. python nose测试框架全面介绍六--框架函数别名

    之前python nose测试框架全面介绍二中介绍了nose框架的基本构成,但在实际应该中我们也会到setup_function等一系列的名字,查看管网后,我们罗列下nose框架中函数的别名 1.pa ...

随机推荐

  1. XToDo未完成内容标记管理器

    下载地址:https://github.com/trawor/XToDo 跟VVDocumenter规范注释生成器的安装方式一样: 下载开源工程在Xcode重新编译运行会自动安装此插件,重启Xcode ...

  2. DataList中动态显示DIV

    <%# DataBinder.Eval(Container,  "DataItem.ProductName").ToString() == "股票矩阵" ...

  3. 织梦漏洞可疑PHP文件/article文件夹

    常见可疑文件夹: 1:article文件夹:最近很多织梦系统网站根目录被上传article文件件,里面有很多赌博静态违法html页面,可疑直接删除,此类违法信息大部分是由于您的网站存在dedecms安 ...

  4. linux如何通过脚本来修改用户的密码?脚本自动化修改用户密码?

    需求描述: linux环境中在创建用户的时候,涉及到修改用户的密码,一般是通过passwd命令进行修改,需要多次的确认,这里考虑通过一条命令直接对密码进行修改 不需要进行交互的方式.在此记录. 操作过 ...

  5. Docker容器的生命周期管理

    https://blog.csdn.net/u010278923/article/details/78751306

  6. Oauth2.0(四):Implicit 授权方式

    Oauth2.0的核心机制已经总结完毕.除了核心机制,Oauth2.0 还提供了几种标准的授权流程,分别适用于不同的场景.其中一种叫做 Implicit 授权,适用于纯静态页面应用.所谓纯静态页面应用 ...

  7. logback -- 配置详解 -- 一 -- <configuration>及子节点

    附: logback.xml实例 logback -- 配置详解 -- 一 -- <configuration>及子节点 logback -- 配置详解 -- 二 -- <appen ...

  8. 5 -- Hibernate的基本用法 --1 2 基本映射方式

    ORM工具提供了持久化类和数据表之间的映射关系.实际上,所有的ORM工具大致上都遵循相同的映射思路,ORM基本映射有如下几条映射关系: ⊙ 数据表映射类 : 持久化类被映射到一个数据表.程序使用这个持 ...

  9. 04python while循环语句

    使用while ture语法 luck_num = 33 flag = True while flag: guess_num = input('请输入您猜测的年龄:') if guess_num &l ...

  10. Unity使用OpenGL绘制经纬线圈

    using System.Collections; using System.Collections.Generic; using UnityEngine; public class LatLonGr ...