一、安装

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. Oracle With As 查询

    WITH AS WITH AS短语,也叫做子查询部分(subquery factoring),可以让你做很多事情,定义一个SQL片断,该SQL片断会被整个SQL语句所用到.有的时候,是为了让SQL语句 ...

  2. vue如何加搜狗联盟广告

    搜狗联盟广告和百度联盟广告大同小异,但是好在百度联盟广告的使用方法网上还是可以找到一些,而搜狗联盟广告的教程网上几乎找不到,都是最基本的创建代码位的教程. 在vue中如果要加入搜狗联盟广告,就不能直接 ...

  3. MongoDB之update

    Update操作只作用于集合中存在的文档.MongoDB提供了如下方法来更新集合中的文档: db.collection.update() db.collection.updateOne() New i ...

  4. QT编译错误:invalid application of 'sizeof' to incomplete type 'Qt3DRender::QPickEvent'

    执行3D常将中实体的pick操作,结果出现了编译错误:invalid application of 'sizeof' to incomplete type 'Qt3DRender::QPickEven ...

  5. python操作mysql数据库实现增删改查

    Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口. Python 数据库接口支持非常多的数据库,你可以选择适合你项目的数据库: ...

  6. 好用的图片缩放JS

    <!DOCTYPE HTML> <meta charset="UTF-8"> <head> <script src="jquer ...

  7. 带有logo的二维码

    摘要: 前面介绍了使用javascript生成二维码,但是这样并不能满足我们的需求,我们有时也会看到带有logo的二维码,本文就介绍如何生成带有logo的二维码. 简介: 主要使用了svg的文本和图像 ...

  8. c++单例设计模式---17

    原创博文,转载请标明出处--周学伟  http://www.cnblogs.com/zxouxuewei/ 全局变量在项目中是能不用就不用的,它是一个定时炸弹,是一个不安全隐患,特别是在多线程程序中, ...

  9. asp.net 验证码

    Before proceeding with the topic first we must understand "What is a Captcha code?" and &q ...

  10. Django 添加应用

    一个项目可以添加多个应用,可以使用以下两种方法来添加应用: [root@localhost web]$ python manage.py startapp blog [root@localhost w ...