如何通过conftest中放置的灯具中的电流(运行)测试模块?

时间:2018-11-20 08:57:45

标签: python-3.x pytest autotest

我想知道如何将当前运行的测试模块传递给灯具,或者灯具如何知道? (我需要为包内的每个测试模块加载特定的配置文件)。

我可以在每个测试模块中创建夹具,但是我想要一个更通用的解决方案。 预先感谢。

1 个答案:

答案 0 :(得分:1)

通常,您可以像这样将模块名称添加到灯具中:

@pytest.fixture
def fixture_global(request):
    module_name = request.module.__name__
    print(module_name) 
    # some logic depends on module name

它甚至可能是全局争用的夹具,但是这种方式不适用于会话作用域夹具,因为并不是所有使用它的模块都被调用。


如果您想拥有一个基本的共享夹具代码,以及一些针对特定模块的特定代码,我建议一种更好的方法。

在全局conftest.py中,将具有通用代码的“基本”灯具放入。如果要将其用于特定的测试模块,只需将全局夹具作为参数注入到本地夹具即可。像这样:

conftest.py

@pytest.fixture
def global_fixture():
  # universal code for vary modules
  return universal_obj

test_module.py

@pytest.fixture
def local_fixture(global_fixture):
  # specific code that uses global fixture result