码迷,mamicode.com
首页 > 其他好文 > 详细

pytest自定义命令行参数

时间:2020-08-28 14:43:40      阅读:85      评论:0      收藏:0      [点我收藏+]

标签:Fix   命令   内容   有一个   code   work   编写   定义   enc   

1. 功能说明

有一个测试方法:

def test_train(framework):
    print(framework)
    assert framework == ‘gbm‘

希望该方法的framework的值可以通过 pytest的参数传递过来,比如:

pytest --framework=deeptables

2. 实现方法

自定义一个叫framework的fixture,它的值从命令行中读取,然后再把fixture 注入到测试方法中。

2.1. 自定义fixture

创建pytest配置文件conftest.py,内容如下:

# -*- encoding: utf-8 -*-
import pytest

def pytest_addoption(parser):
    parser.addoption("--framework", action="store", default="deeptables",
                     help="one of: deeptables, gbm")

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

2.2. 编写测试方法,使用fixture

def test_train(framework):
    print(framework)
    assert framework == ‘gbm‘

2.3. 运行

pytest  --framework=xyz

输出:

framework = ‘xyz‘

    def test_train(framework):
        print(framework)
>       assert framework == ‘gbm‘
E       AssertionError: assert ‘xyz‘ == ‘gbm‘

test/test_custom_option.py:8: AssertionError

Assertion failed

Assertion failed

pytest自定义命令行参数

标签:Fix   命令   内容   有一个   code   work   编写   定义   enc   

原文地址:https://www.cnblogs.com/oaks/p/13554504.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!