我只是有一个问题,如何创建 2 种类型的会话装置来使用 SQLAlchemy 连接到数据库。
@pytest.fixture
def session_function_scope():
engine = create_engine('sqlite:///:memory:'
Session = sessionmaker(bind=engine)
session = Session
yield session
session.close()
@pytest.fixture(scope='session')
def session_session_scope():
engine = create_engine('sqlite:///:memory:'
Session = sessionmaker(bind=engine)
session = Session
yield session
session.close()
这是我的解决方案。在数据库的功能和单元测试下,我们将使用函数范围,而对于其他用途,我们将使用会话范围。但如果我使用这种方法,我们将会有重复的代码。你有什么办法解决这个问题吗?
谢谢你
为什么不使用单个会话?最好使用函数作用域来确保每个测试用例都使用一个新会话。这样,不同测试相互影响的可能性就会降低。我还没有看到任何您可能需要创建单个会话来进行测试运行的情况。