我正在尝试对我的数据库集成测试进行并行测试,但没有成功。我用的是切里皮,皮威,博士后和鼻子测试。在
我的基本模型(每个实体都来自于此模型):
class BaseModel(Model):
class Meta:
database = manager.get_db() # Link this to the loaded database.
我的manager类看起来像这样(manager(小写)是DbManager的单例实例):
^{pr2}$我的基本数据库测试(补丁是指前面提到的singleton manager实例):
class BaseServiceTest(unittest.TestCase):
_multiprocess_shared_ = True
def setUp(self):
self.begin_patch = patch('manager.db.begin')
self.begin_mock = self.begin_patch.start()
self.commit_patch = patch('manager.db.commit')
self.commit_mock = self.commit_patch.start()
self.rollback_patch = patch('manager.db.rollback')
self.rollback_mock = self.rollback_patch.start()
def tearDown(self):
self.rollback_patch.stop()
self.commit_patch.stop()
self.begin_patch.stop()
manager.get_db().rollback()
在test top levelinit.py文件中,我正在设置数据库:
def set_up_database():
settings = {
"host": "127.0.0.1",
"port": 5432,
"name": "product_test",
"user": "product_test",
"password": None,
'sslmode': 'disable'
}
load_db_only(settings)
reset_db_only()
加载数据库只调用指定参数的数据库初始化,重置数据库创建必要的关系
问题是-数据是在测试之间共享的,所以当我运行并行测试时,我得到了失败的约束(这封电子邮件已经存在等等)。 我试图实现的是只在事务中使用数据(一般来说,我的目标是让测试并行运行—因此,任何其他建议都是非常受欢迎的):
最后我的问题是: 有人知道如何做到这一点吗?在
目前没有回答
相关问题 更多 >
编程相关推荐