首页 > 解决方案 > RobotFramework 中的长寿对象

问题描述

我有兴趣在具有会话范围的 pytest 夹具中实现某种类似的行为:

class MyClass:
    def __init___(self):
       self.actions = []

@fixture(scope='session')
def live_during_session():
    return MyClass()


def test_1(live_during_session):
    live_during_session.actions.append('test_1')

def test_2(live_during_session):
    live_during_session.actions.append('test_2')

print(live_during_session.actions)  # [test_1, test_2]

我希望有一个可用于整个会话或套件运行的长期实例。

有什么解决办法吗?

标签: pythonpytestrobotframework

解决方案


您可以添加ROBOT_LIBRARY_SCOPE = 'SUITE'这样只会为测试套件创建一个库实例。对每个测试都有实例

class ExampleLibrary:
    ROBOT_LIBRARY_SCOPE = 'SUITE'

    def __init__(self):
        self._counter = 0

    def count(self):
        self._counter += 1
        print(self._counter)

    def clear_counter(self):
        self._counter = 0

您可以在此处阅读有关库范围的信息


推荐阅读