前言

命令行参数是根据命令行选项将不同的值传递给测试函数,比如平常在cmd执行"pytest --html=report.html",这里面的”--html=report.html“就是从命令行传入的参数
对应的参数名称是html,参数值是report.html

conftest配置参数

1.首先需要在conftest.py添加命令行选项,命令行传入参数”--cmdopt“, 用例如果需要用到从命令行传入的参数,就调用cmdopt函数:

# content of conftest.py
import pytestdef pytest_addoption(parser):parser.addoption("--cmdopt", action="store", default="type1", help="my option: type1 or type2")@pytest.fixture
def cmdopt(request):return request.config.getoption("--cmdopt")

2.测试用例编写案例

# content of test_sample.py
import pytest
def test_answer(cmdopt):if cmdopt == "type1":print("first")elif cmdopt == "type2":print("second")assert 0  # to see what was printedif __name__ == "__main__":pytest.main(["-s", "test_case1.py"])

cmd打开,输入指令启动,也可以在pycharm里面右键执行上面代码

$ pytest -s test_sample.py

运行结果:

>pytest -s
============================= test session starts =============================
test_sample.py first
F================================== FAILURES ===================================
_________________________________ test_answer _________________________________cmdopt = 'type1'def test_answer(cmdopt):if cmdopt == "type1":print("first")elif cmdopt == "type2":print("second")
>       assert 0  # to see what was printed
E       assert 0test_case1.py:8: AssertionError
========================== 1 failed in 0.05 seconds ===========================

带参数启动

1.如果不带参数执行,那么传默认的default="type1",接下来在命令行带上参数去执行

$ pytest -s test_sample.py --cmdopt=type2

test_sample.py second
F================================== FAILURES ===================================
_________________________________ test_answer _________________________________cmdopt = 'type2'def test_answer(cmdopt):if cmdopt == "type1":print("first")elif cmdopt == "type2":print("second")
>       assert 0  # to see what was printed
E       assert 0test_case1.py:8: AssertionError
========================== 1 failed in 0.05 seconds ===========================

2.命令行传参数有两种写法,还有一种分成2个参数也可以的,参数和名称用空格隔开

$ pytest -s test_case1.py --cmdopt type2

pytest命令行传参相关推荐

  1. python3输入参数_python3 十一、命令行传参

    估计有很多小伙伴在linux系统上或win的doc中遇到没有UI页面的程序,只能通过命令行输入参数的形式去运行 那么python是怎么实现的呢? 熟悉python的小伙伴都知道python有个原生库 ...

  2. shell脚本的命令行传参

    在Linux环境下开发C程序,若想要可选择性的给程序传递外部参数,最后是以启动脚本的形式间接进行传递,这样对于命令行的参数解析工作将集中到shell脚本中,大大增加C代码的可移植性.       sh ...

  3. Linux C程序命令行传参

    在命令行环境下,执行已编译的程序时,将命令行参数以同一行的附加参数的形式传入到要执行的程序中.C编译器允许main()函数没有参数,或者有两个参数(也有可能更多,是对标准的扩展).一般形式为" ...

  4. matlab读取txt数据绘图(python命令行传参)

    (1)命令行实现高斯分布 一:综述 Python唯一支持的参数传递方式是『共享传参』(call by sharing)多数面向对象语言都采用这一模式,包括Ruby.Smalltalk和Java(Jav ...

  5. Python 命令行传参

    Python 命令行传参 说到 python 命令行传参,可能大部分人的第一反应就是用 argparse.的确,argparse 在我们需要指定多个预设的参数(如深度学习中指定模型的超参数等)时,是非 ...

  6. Java学习第八天<什么是方法><方法的定义和调用><方法的重载><命令行传参><可变参数><递归详解>

    什么是方法 System.out.println(); 调用系统类里的标准输出对象(out)中的方法println public class Demo01 {//main 方法public stati ...

  7. argparse:Python命令行传参

    诸神缄默不语-个人CSDN博文目录 argparse模块(Python官方文档:argparse - 命令行选项.参数和子命令解析器 - Python 3.10.3 文档),可以用来在用命令行运行Py ...

  8. python使用argparse模块实现在终端命令行传参

    直接上代码 import argparse # 定义终端要传送的参数 parser = argparse.ArgumentParser(description="A description ...

  9. Day13-Java方法详解,方法的定义、重载,命令行传参,可变参数与递归

    Java方法详解 什么是方法? Java的方法是语句的集合,他们在一起执行一个功能 方法是解决一类问题的步骤的有序组合 方法包含于类或对象中 方法再程序中被创建,在其他地方被引用 [方法原子性]一个方 ...

最新文章

  1. Java如何转换protobuf-net中的bcl.DateTime对象
  2. iOS之UI--涂鸦画板实例
  3. 打造完全绿色的TOTAL COMMANDER
  4. php分享三十三:用php中的register_shutdown_function和fastcgi_finish_request
  5. 【算法】图(一)拓扑排序的实现 图的邻接表算法 判断是否图G中存在环
  6. java内存管理机制剖析(一)
  7. android linearlayout 方法,android布局----LinearLayout布局方式
  8. 他靠一生仅有的三篇论文改变了摩尔根,后来却从生物学界销声匿迹了
  9. 什么是 ARM 架构处理器?
  10. 黑莓手机将停售;三大运营商:疫情防控期间用户欠费不停机;Chrome 测试移除搜索结果页网址 | 极客头条...
  11. 休宁天气预报软件测试,【休宁天气预报】休宁今天天气预报 - 天气史
  12. 编码基本功:以文件大小进行性能测试是错误的
  13. DataBufferLimitException: Exceeded limit on max bytes to buffer : 262144
  14. 【HAVENT原创】使用 Spring Boot 的 AOP 自定义注解
  15. linux宝塔怎么添加二级域名,如何绑定二级域名使用宝塔面板?
  16. linux 内核---------董昊 ( Robin Dong ) and OenHan
  17. 2021运营App推广必备的几款工具
  18. iPhone开发Swift基础08 加密与安全
  19. mysql定义取值范围_mysql的decimal类型取值范围
  20. 【转】codelite

热门文章

  1. 如何将 Oracle 单实例数据库转换为RAC数据库?
  2. 2020年2月数据库流行度排行:冬日虽然寒冷,春光必定灿烂
  3. 一条SQL语句的千回百转
  4. 华为云发布【云巢】智慧康养物联网加速器,加入立享多项扶持
  5. 在PyQt中构建 Python 菜单栏、菜单和工具栏
  6. 教你如何将二进制文件导入到数据库
  7. 深度对比Apache CarbonData、Hudi和Open Delta三大开源数据湖方案
  8. 【华为云技术分享】探索软件复杂性简洁之道
  9. 【华为云技术分享】HDC.Cloud|华为云Stack大咖说:如何实现微服务架构下的分布式事务
  10. Vue深入学习3—数据响应式原理