我有一个Django(v1.4,使用Postgresql)项目,为此我编写了许多工作单元测试。它们使用FactoryBoy生成大多数数据。
我现在开始使用LiveServerTestCase和Selenium 编写一些集成测试。我刚刚意识到我的测试和实时测试服务器使用不同的数据库。这意味着Selenium无法使用工厂在我的测试中创建的数据。
我不确定最好的进步方式。我 认为 我可以使用固定装置来提供可以正常工作的数据,尽管现在使用工厂来解决这个问题实在是很痛苦。
有没有办法我可以继续使用工厂来生成适用于我的Selenium测试的数据?确实,我希望我的测试和LiveServerTestCase使用相同的数据库。
您是否尝试过将sqlite用作测试的数据库后端?
使用内存中的SQLite数据库运行测试时,相同的数据库连接将由两个线程并行共享:运行实时服务器的线程和运行测试用例的线程。
来自Django文档
如果您没有使用常规ORM之外的任何工具,那么您也可以从测试加速中受益。