【发布时间】:2014-09-21 20:21:02
【问题描述】:
我尝试通过将测试用例 setUp() 中的测试数据放入 setUpClass()/teardownClass 类方法来加速我的测试,因此它不会为测试用例中的每个测试重新创建相同的仅选择夹具。
@classmethod
def setUpClass(cls):
plant.StuffFactory() #plant stuff with FactoryBoy
transaction.commit()
@classmethod
def tearDownClass(cls):
session.query(models.Stuff).delete() # delete planted stuff
transaction.commit()
但我不喜欢自己用 session.delete 删除东西,因为我使用了很多模型并且不想跟踪我种植的东西。我想要类似的东西
@classmethod
def tearDownClass(cls):
session.clear() #delete all
transaction.commit()
但session.close() 或session.remove() 不会影响已提交的数据。
所以我想办法“取消”setUpClasstransaction.commit(),就像我什么都不种。
我尝试了嵌套事务和保存点,但它们仅在尚未提交数据时才有效。
任何指针?
【问题讨论】:
标签: python sqlalchemy pyramid