一尘不染

Django测试用例和Selenium服务器如何使用相同的数据库?

selenium

我有一个Django(v1.4,使用Postgresql)项目,为此我编写了许多工作单元测试。它们使用FactoryBoy生成大多数数据。

我现在开始使用LiveServerTestCase和Selenium
编写一些集成测试。我刚刚意识到我的测试和实时测试服务器使用不同的数据库。这意味着Selenium无法使用工厂在我的测试中创建的数据。

我不确定最好的进步方式。我 认为 我可以使用固定装置来提供可以正常工作的数据,尽管现在使用工厂来解决这个问题实在是很痛苦。

有没有办法我可以继续使用工厂来生成适用于我的Selenium测试的数据?确实,我希望我的测试和LiveServerTestCase使用相同的数据库。


阅读 277

收藏
2020-06-26

共1个答案

一尘不染

您是否尝试过将sqlite用作测试的数据库后端?

使用内存中的SQLite数据库运行测试时,相同的数据库连接将由两个线程并行共享:运行实时服务器的线程和运行测试用例的线程。

来自Django文档

如果您没有使用常规ORM之外的任何工具,那么您也可以从测试加速中受益。

2020-06-26