pytest:如何根据命令行参数对夹具进行参数化?

时间:2016-10-19 11:12:28

标签: pytest fixtures

我有一堆由夹具产生的测试用例。我希望fixture能够根据命令行参数有选择地产生测试用例。我徒劳地尝试了几种方法。

使用灯具装饰器的参数参数:我无法访问'请求'上下文。

使用 pytest_generate_tests():我使用metafunc对象上下文获取命令行参数,并创建夹具以像this那样参数化测试。但是,我担心每次测试都会运行pytest_generate_tests(),并且丢失了整个装置。是这种情况吗?

我对pytest有点新意,所以我可能也没有正确使用该框架。所以,我可以采用其他方式开展这项工作。基本上我想根据命令行参数对我的测试进行参数化,并且它们需要是固定装置。

1 个答案:

答案 0 :(得分:0)

You can use pytest_cmdline_main like this

def pytest_cmdline_main(config):
    option = config.getoption('--your-option')
    if option:
        # use the option to modify fixture data

pytest_generate_tests is useful to generate fixture values on the fly.