【发布时间】:2018-01-30 17:04:48
【问题描述】:
我在使用 pytest 固定装置时遇到了一个小问题,非常感谢您的帮助。
我有一些功能装置,如下所述。为简单起见,我没有展示实现。
@pytest.fixture()
def get_driver():
pass
@pytest.fixture()
def login(get_driver):
pass
@pytest.fixture()
def settings(login):
pass
问题是我需要一个(会话级别)fixture,它在我运行我的第一个测试用例之前进行设置。 (实际开始测试)。即转到设置页面并创建一些设置。 (登录后)
现在的问题是我不能使用 会话级别的固定装置 这样做,因为我不能在会话级别使用功能级别的固定装置。 或者我可以吗?
@pytest.fixture(scope="session")
def setup(settings):
settings.create_settings()
pass
【问题讨论】:
-
文档说“不”。功能级别的夹具可以使用会话级别的夹具,但反之则不行。我想您需要为您的情况添加更多详细信息,以便我们能够找到解决您问题的方法。
-
问题是我需要一个夹具,它在第一个测试用例之前只调用一次。 (会话或模块)。但是问题是,我不能使用
settings夹具,它具有与在此夹具中创建data for test相关的所有功能。 -
您的
get_driver是一个函数级夹具,这是否意味着您正在为每个测试函数创建一个driver的新实例?或者您只是检索将在会话范围setup固定装置中使用的相同driver实例? -
我正在为每个测试创建新的驱动程序实例。
标签: python python-2.7 selenium pytest fixtures