pytest 获取命令行选项

pytest get command line options

我有几个关于 pytest 命令行选项的问题

  1. 如果同一个选项可以同时使用长名和短名,例如

    parser.addoption('--server', '-srv', dest = 'SERVER')

  2. 如何通过名称访问命令行选项,例如:

    config.option.NAME

     def environment_options(parser):
         parser.addoption('--server', dest= "SERVER")
    
     @pytest.fixture()
     def enfironment_set_up():
         if config.option.SERVER == 'some value': 
            actions
    

pycharm 显示引用未解析 'config'。我需要导入什么吗?

据我所知(在文档中没有找到),可以添加一个短名称,但只能有一个大写字母,例如:

 def environment_options(parser):
     parser.addoption('-S', '--server', dest= "SERVER")

pytest本身保留小写字母,不支持更长的缩写。另请参阅我的相关内容 answer.

您可以通过 request 夹具中的 config 访问该选项:

 @pytest.fixture
 def enfironment_set_up(request):
     if request.config.getoption("SERVER") == 'some value': 
        actions