pytest 命令执行添加自定义参数

1.创建conftest.py

import pytest
from funpinpin_api.util.para import action

def pytest_addoption(parser):
    test_api = "test"
    test_product_url = action['test_product']
    parser.addoption ( "--test_api", default=test_api )
    parser.addoption ( "--test_product_url", default=test_product_url )


@pytest.fixture
def test_api(request):
    return request.config.getoption ( "--test_api" )

@pytest.fixture
def test_product_url(request):
    return request.config.getoption ( "--test_product_url" )

Example:

import pytest
class Test_aaa():
    def test_train(self,test_api,test_product_url):
        print(test_apii)
        print(test_product_url)
        assert 1 == 1

pytest.main ( "-v -s  buy.py::Test_aaa::test_train  --test_api=xyz  --test_product_url=ttt  --alluredir  ./report "  )

#Result
collected 1 item
buy.py::Test_aaa::test_train xyz
ttt
PASSED

批量执行所有test文件,不传值,也会执行设置的默认值
pytest.main ( "-v -s buy.py::Test_aaa --alluredir ./report " )

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 自定义mark mark注册 pytest --markers 根据节点ID选择测试用例 自定义mark 我们...
    小青_9124阅读 1,018评论 0 0
  • 由原生的报告思考问题: 根据默认的命令,生成的报告均为英文,不适合广泛阅读? 报告中三个模块:Enviro...
    测试实战派阅读 2,517评论 0 0
  • 1. 脚本桥接之选项和参数 创建自定义调试命令时,通常需要根据提供给命令的选项或参数稍微调整功能。一个自定义的LL...
    收纳箱阅读 2,009评论 0 0
  • 从年底换工作就没怎么写学习笔记了,期间在公司边学边用了 Android Python 过年在家看了iOS,还是b站...
    勇者与王者阅读 608评论 0 0
  • 本文参考了官方文档和一些乐于分享的大佬的博客,结合自己的理解完成。学习pytest框架的小白,需要按照教程自己敲一...
    成都_阿木木阅读 14,260评论 1 5