From: http://www.testclass.net/pytest/multiple_tests/

背景

在现实的测试活动中,我们经常会定义多个用例文件,用来实现业务逻辑或其他逻辑上用例的物理分隔,比如

login_test.py # 登录相关功能的测试用例
cart_test.py # 购物车相关功能的测试用例
checkout_test.py # 结算相关功能的用例
order_test.py # 订单相关功能的用例

使用pytest可以很方便的执行批量执行一组文件中定义的用例。

潜规则

在批量执行用例之前,我们需要了解一下pytest的潜规则,注意,由于pytest可以支持丰富的定制选项,下面的潜规则是在没有定制的默认情况下的缺省规则

  • pytest会找当前以及递查找子文件夹下面所有的test_*.py*_test.py的文件,把其当作测试文件
  • 在这些文件里,pytest会收集下面的一些函数或方法,当作测试用例
    • 不在类定义中的以test_开头的函数或方法
    • 在以Test开头的类中(不能包含__init__方法),以test_开头的方法
  • pytest也支持unittest模式的用例定义

实例

新建test_calc.py文件,与上一节的test_quick_start.py放在同一文件夹下,敲入下面的内容

def add(x, y):
return x + y def test_add():
assert add(1, 0) == 1
assert add(1, 1) == 2
assert add(1, 99) == 100

现在当前文件夹下应该有2个文件

test_calc.py
test_quick_start.py

运行

在当前文件夹敲下面的命令

pytest

结果大致应该如下所示

$ pytest
========================================================================= test session starts =========================================================================
platform darwin -- Python 2.7.12, pytest-3.2.3, py-1.4.34, pluggy-0.4.0
rootdir: /Users/easonhan/code/testclass.net/src/pytest, inifile:
collected 2 items test_calc.py .
test_quick_start.py . ====================================================================== 2 passed in 0.01 seconds =======================================================================

总结

上面的例子里

  • 所有以test_开头的py文件都被当成了测试文件
  • 所有测试文件中以test开头的方法被当成了测试用例执行

pytest.2.运行多个文件的更多相关文章

  1. jenkins+pytest+ allure运行多个py文件测试用例

    jenkins的pytest运行多个py文件,导出allure报告方法,只需改下job的配置中的构建即可(pytest会运行指定文件下的所有test开头的py文件),如下:              ...

  2. 【pytest】(三) pytest运行多个文件

    1.运行多个测试文件 pytest 会运行 test_ 开头 或者 _test 结尾的文件,在当前目录和子目录中 2. 一个类下的多个用例的运行, pytest会找到 test_ 开头的方法 impo ...

  3. pycharm中不以pytest方式运行,以普通方式运行的方法

    问题: 在调试一个很简单的代码时无法输出结果,运行结果如下形式: 出现以上情况,主要是因为在运行时是以pytest方式运行的,要换回以普通方式去运行. 问题解决: 首先是红色圈圈里的白色三角形. 然后 ...

  4. pytest-pyppeteer:在pytest中运行pyppeteer

    pytest-pyppeteer pytest-pyppeteer是我写的一个 pytest 插件,支持在 pytest 中运行pyppeteer,起因是为了解决工作中的一个测试需求,现在将其开源并做 ...

  5. 关于SQL Server 安装程序在运行 Windows Installer 文件时遇到错误

    前几日安装sql server2008r2 的时候碰到这个问题: 出现以下错误: SQL Server 安装程序在运行 Windows Installer 文件时遇到错误. Windows Insta ...

  6. IAR编译ZStack-CC2530为可下载运行的HEX文件的正确配置

    转自IAR编译ZStack-CC2530为可下载运行的HEX文件的正确配置 IAR编译ZStack-CC2530为可下载运行的HEX文件的正确配置:        1.正确配置输出文件格式:菜单选择P ...

  7. 如何使用AdvancedInstaller在安装包中运行一个.bat文件

    原文:如何使用AdvancedInstaller在安装包中运行一个.bat文件 1,  首先要保证你的Files and Folders模块下的Application Folder文件夹下包含你要运行 ...

  8. Django 在Django项目里单独运行某个py文件

    Python文件开头写以下代码: import os import django # 在environ字典里设置默认Django环境,'xxxx.settings'指Django项目的配置文件 os. ...

  9. 运行 python *.py 文件出错,如:python a.py

    运行 python *.py 文件出错,如:python a.py(下图) 原因:没有安装web.py 解决:下载并安装 网址:http://webpy.org/install#install  (h ...

随机推荐

  1. upstream timed out (110: Connection timed out) while reading response header from upstream

    Nginx报错日志有如下内容: upstream timed out (110: Connection timed out) while reading response header from up ...

  2. Unity 项目中委托Delegate用法案例

    Unity中Delegate的用法场景 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar - ...

  3. 田螺便利店—win10专业版激活码

    win10专业版:VP4MG-CMX8Q-27THR-Y468R-HRVR7 开始——设置——更新和安全——激活——更改产品密钥 复制VP4MG-CMX8Q-27THR-Y468R-HRVR7即可激活 ...

  4. Vue的新启之笔

    之前就有接触Vue这一语言,作为一个摊薄饼的我,觉得其基础性的知识体系与其他语言是相通的.且由于贵阳这一城市的地理位置的特殊性,我不得不承认想要从事软件开发这一行业,不精通一门语言不行.因为,任何一家 ...

  5. Codeforces 1005D:Polycarp and Div 3

    题目链接:http://codeforces.com/problemset/problem/1005/D 题意 给出个字符串(全是数字),把这个字符串换分成一些子串,最多能划分多少个能够被3整除的子串 ...

  6. lamp 相关

    1.LAMP = linux + apache + mysql(mariadb/mongodb) + php 2.mysql 安装:先下载安装包: wget -c http://mirrors.soh ...

  7. (9)模板层 - templates(模板语言、语法、取值、过滤器、变量的使用)

    django的模板语言:DTL 模板语言的变量传入 这个是标签 {{ 变量名 }} {{ 变量名 }}   #模板语言的替换可以在模板中的任意位置生效 PS:通过 . 可以做深度查询 模板语言的过滤器 ...

  8. java中类加载时机

    java虚拟机规范虽然没有强制性约束在什么时候开始类加载过程,但是对于类的初始化,虚拟机规范则严格规定了有且只有四种情况必须立即对类进行初始化,遇到new.getStatic.putStatic或in ...

  9. MySQL在登陆时出现ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)错误

    错误显示:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 解决方案: 1.找到配 ...

  10. heptio scanner kubernetes 集群诊断工具部署说明

    heptio scanner 是一款k8s 集群状态的诊断工具,还是很方便的,但是有一点就是需要使用google 的镜像 参考地址 https://scanner.heptio.com/ 部署 kub ...