本文介绍pytest.main运行测试用例的方法
pytest.main():main中传入不同的指令用以执行指定测试用例
-s: 显示程序中的print/logging输出
-v: 丰富信息模式, 输出更详细的用例执行信息
-q: 安静模式, 不输出环境信息
-k:关键字匹配,用and区分:匹配范围(文件名、类名、函数名)

示例


test_module1.py

def test_m1_1():print('这是 subpath1/test_module1.py::test_m1_1')assert 1==1def test_m1_2():print('这是 subpath1/test_module1.py::test_m1_2')assert 2==2def test_spec_1():print ('这是 subpath1/test_module1.py::test_spec_1')assert 2 == 2

test_module2.py

def test_m2_01():print('这是 subpath1/test_module1.py::test_m1_1')assert 1==1class TestM2():def test_m2_02(self):print ('这是 subpath2/test_module2.py::TestM2::test_m2_02')assert 1==1def test_pp(self):print ('这是 subpath2/test_module2.py::TestM2::test_pp')assert 1 == 1

maintest.py

import pytestif __name__ == '__main__':# 运行当前目录下所有(test_*.py  和 *_test.py)pytest.main()

运行结果:

============================= test session starts =============================
platform win32 -- Python 3.6.6rc1, pytest-5.4.1, py-1.8.1, pluggy-0.13.1
rootdir: E:\study\python\study\BasicKnowledgePoints\s5_frame\f001_pytest_用例运行
collected 6 itemssubpath1\test_module1.py ...                                             [ 50%]
subpath2\test_module2.py ...                                             [100%]============================== 6 passed in 0.15s ==============================

1、运行指定路径下的用例

pytest.main(['./'])               # 运行./目录下所有(test_*.py  和 *_test.py)
pytest.main (['./subpath1'])    # 运行./subpath1 目录下用例
pytest.main (['./subpath1/test_module1.py'])    # 运行指定模块
pytest.main (['./subpath1/test_module1.py::test_m1_1'])  # 运行模块中的指定用例
pytest.main (['./subpath2/test_module2.py::TestM2::test_m2_02'])  # 运行类中的指定用例
pytest.main (['-k','pp'])         # 匹配包含pp的用例(匹配目录名、模块名、类名、用例名)
pytest.main(['-k','spec','./subpath1/test_module1.py'])     # 匹配test_module1.py模块下包含spec的用例
pytest.main(['-k','pp','./subpath2/test_module2.py::TestM2'])   # 匹配TestM2类中包含pp的用例

2、运行参数

pytest.main(['-s','./subpath1/test_module1.py'])        # -s: 显示程序中的print/logging输出

运行结果:

subpath1\test_module1.py 这是 subpath1/test_module1.py::test_m1_1
.这是 subpath1/test_module1.py::test_m1_2
.这是 subpath1/test_module1.py::test_spec_1
.
pytest.main(['-v','./subpath1/test_module1.py'])        # -v: 丰富信息模式, 输出更详细的用例执行信息

运行结果:

subpath1/test_module1.py::test_m1_1 PASSED                               [ 33%]
subpath1/test_module1.py::test_m1_2 PASSED                               [ 66%]
subpath1/test_module1.py::test_spec_1 PASSED                             [100%]============================== 3 passed in 0.06s ==============================
pytest.main(['-q','./subpath1/test_module1.py'])        # -q: 安静模式, 不输出环境信息

运行结果:

...                                                                      [100%]
3 passed in 0.06s
pytest.main(['-v','-s','./subpath1/test_module1.py'])        # 多个参数组合

运行结果:

subpath1/test_module1.py::test_m1_1 这是 subpath1/test_module1.py::test_m1_1
PASSED
subpath1/test_module1.py::test_m1_2 这是 subpath1/test_module1.py::test_m1_2
PASSED
subpath1/test_module1.py::test_spec_1 这是 subpath1/test_module1.py::test_spec_1
PASSED============================== 3 passed in 0.10s ==============================

pytest-pytest.main()运行测试用例,pytest参数相关推荐

  1. 【pytest】使用 mark 标记及运行测试用例,注册、管理 mark 标记

    使用 @pytest.mark.xxx 标记测试用例: 可以标记测试方法.测试类,标记名可以自定义,最好起有意义的名字: 同一测试类/方法可同时拥有多个标记: # test_login_logout. ...

  2. Java多进程测试用例_Pytest xdist/Pytest并行多进程执行测试用例,pytestxdistpytestparallel...

    如果想分布式执行用例,用例设计必须遵循以下原则: 1.用例之间都是独立的, 2.用例a不要去依赖用例b 3.用例执行没先后顺序, 4.随机都能执行每个用例都能独立运行成功每个用例都能重复运行,不影响其 ...

  3. Pytest之重运行及生成测试报告

    VOL 156 09 2020-09 今天距2021年113天 这是ITester软件测试小栈第156次推文 点击上方蓝字"ITester软件测试小栈"关注我,每周一.三.五早上  ...

  4. pytest-ordering:指定pytest的case运行顺序的插件

    背景 在写接口或功能自动化case的时候,会遇到一些case有先后执行顺序的场景.比如:注册->登陆,先调用注册接口在数据库里面生成用户名和密码,然后使用登陆接口验证登陆. 在pytest里,如 ...

  5. Pytest跳过执行之@pytest.mark.skip()详解大全

    一.skip介绍及运用 在我们自动化测试过程中,经常会遇到功能阻塞.功能未实现.环境等一系列外部因素问题导致的一些用例执行不了,这时我们就可以用到跳过skip用例,如果我们注释掉或删除掉,后面还要进行 ...

  6. pytest的使用和学习---pytest的安装和简单使用

    pytest的使用和学习-pytest的安装和简单使用 文章目录 pytest的使用和学习---pytest的安装和简单使用 前言 一.pytest是什么? 二.安装步骤 三.简单使用 pytest ...

  7. 【pytest】(三) pytest中的fixture (2) : fixture的声明和调用

    目录 1. fixture的声明 2. fixture的调用 2.1 fixture的调用方式 2.1.1 使用fixturename 2.1.2 使用`@pytest.mark.usefixture ...

  8. 【pytest】(二) pytest与unittest的比较

    一. 为什么我用了pytest后就会喜欢上它 pytest的框架规范更自由 在使用unittest编写测试用例的时候,需要遵循先创建testclass,测试类继承unittest.TestCase的固 ...

  9. 【pytest】(四) pytest中的fixture (3) : fixture的作用域、实例化顺序和可用性

    目录 1. fixture的作用域 1.1 scope 1.2 动态作用域(Dynamic scope) 2. fixture的实例化顺序 2.1 作用域级别高的fixture先执行 2.2 fixt ...

最新文章

  1. 你为什么“啃不动”你手中的技术书?
  2. a类不确定度计算器_统统帮您搞定:LIMS系统,换版、内审、期间核查、不确定度、数据分析…………...
  3. 关于android 1.6全部的权限介绍
  4. 熟练掌握Word2003中的突出显示功能
  5. 9月PMP考试起用新考纲,这些变化你了解了吗?
  6. Java扑克牌(洗牌Collections.shuffle)
  7. P2817 宋荣子的城堡
  8. WINDOWS 需要您的当前凭证
  9. js实现字体和容器宽高随窗口改变
  10. 简述用UCenter整合第三方应用程序
  11. 小熊派开发板实践:智慧路灯沙箱实验之真实设备接入
  12. 【转】C++中的inline用法
  13. CGO磁盘管理For流星无语
  14. C#自定义数字格式字符串
  15. 被弃用的 Docker 未死:带着 1.05 亿美元融资“回归”,估值高达 21 亿
  16. Android中删除照片操作
  17. oracle安装出现乱码报错,oracle_oracle安装出现乱码等相关问题,安装oracle时候遇到错误 Preparing - phpStudy...
  18. 【NLP】揭秘马尔可夫模型神秘面纱系列文章(三)
  19. 吟诗作赋不能赚钱,作诗的AI机器人的盈利之路在哪
  20. python安装jupter在线ide

热门文章

  1. 出现错误1327!无效驱动器G的解决
  2. Spring AOP源码分析二
  3. vue手风琴组件_Vue 2的Badger手风琴组件
  4. PTA“值班安排”的题没有思路?速来,这里有附带详细注释的代码!
  5. JVM原理(Java代码编译和执行的整个过程+JVM内存管理及垃圾回收机制)
  6. 高级工程师面试 - MySQL
  7. python dll_python3.dll,下载,简介,描述,修复,等相关问题一站搞定_DLL之家
  8. 工信部关白玉处长详解“核高基”
  9. Gulp插件之gulp-babel和gulp-uglify关于js代码的转换和压缩
  10. SlackwareLinux的安装之您满意DOS的表现?(转)