pytest命令行传参
前言
命令行参数是根据命令行选项将不同的值传递给测试函数,比如平常在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命令行传参相关推荐
- python3输入参数_python3 十一、命令行传参
估计有很多小伙伴在linux系统上或win的doc中遇到没有UI页面的程序,只能通过命令行输入参数的形式去运行 那么python是怎么实现的呢? 熟悉python的小伙伴都知道python有个原生库 ...
- shell脚本的命令行传参
在Linux环境下开发C程序,若想要可选择性的给程序传递外部参数,最后是以启动脚本的形式间接进行传递,这样对于命令行的参数解析工作将集中到shell脚本中,大大增加C代码的可移植性. sh ...
- Linux C程序命令行传参
在命令行环境下,执行已编译的程序时,将命令行参数以同一行的附加参数的形式传入到要执行的程序中.C编译器允许main()函数没有参数,或者有两个参数(也有可能更多,是对标准的扩展).一般形式为" ...
- matlab读取txt数据绘图(python命令行传参)
(1)命令行实现高斯分布 一:综述 Python唯一支持的参数传递方式是『共享传参』(call by sharing)多数面向对象语言都采用这一模式,包括Ruby.Smalltalk和Java(Jav ...
- Python 命令行传参
Python 命令行传参 说到 python 命令行传参,可能大部分人的第一反应就是用 argparse.的确,argparse 在我们需要指定多个预设的参数(如深度学习中指定模型的超参数等)时,是非 ...
- Java学习第八天<什么是方法><方法的定义和调用><方法的重载><命令行传参><可变参数><递归详解>
什么是方法 System.out.println(); 调用系统类里的标准输出对象(out)中的方法println public class Demo01 {//main 方法public stati ...
- argparse:Python命令行传参
诸神缄默不语-个人CSDN博文目录 argparse模块(Python官方文档:argparse - 命令行选项.参数和子命令解析器 - Python 3.10.3 文档),可以用来在用命令行运行Py ...
- python使用argparse模块实现在终端命令行传参
直接上代码 import argparse # 定义终端要传送的参数 parser = argparse.ArgumentParser(description="A description ...
- Day13-Java方法详解,方法的定义、重载,命令行传参,可变参数与递归
Java方法详解 什么是方法? Java的方法是语句的集合,他们在一起执行一个功能 方法是解决一类问题的步骤的有序组合 方法包含于类或对象中 方法再程序中被创建,在其他地方被引用 [方法原子性]一个方 ...
最新文章
- Java如何转换protobuf-net中的bcl.DateTime对象
- iOS之UI--涂鸦画板实例
- 打造完全绿色的TOTAL COMMANDER
- php分享三十三:用php中的register_shutdown_function和fastcgi_finish_request
- 【算法】图(一)拓扑排序的实现 图的邻接表算法 判断是否图G中存在环
- java内存管理机制剖析(一)
- android linearlayout 方法,android布局----LinearLayout布局方式
- 他靠一生仅有的三篇论文改变了摩尔根,后来却从生物学界销声匿迹了
- 什么是 ARM 架构处理器?
- 黑莓手机将停售;三大运营商:疫情防控期间用户欠费不停机;Chrome 测试移除搜索结果页网址 | 极客头条...
- 休宁天气预报软件测试,【休宁天气预报】休宁今天天气预报 - 天气史
- 编码基本功:以文件大小进行性能测试是错误的
- DataBufferLimitException: Exceeded limit on max bytes to buffer : 262144
- 【HAVENT原创】使用 Spring Boot 的 AOP 自定义注解
- linux宝塔怎么添加二级域名,如何绑定二级域名使用宝塔面板?
- linux 内核---------董昊 ( Robin Dong ) and OenHan
- 2021运营App推广必备的几款工具
- iPhone开发Swift基础08 加密与安全
- mysql定义取值范围_mysql的decimal类型取值范围
- 【转】codelite