【发布时间】:2018-01-20 05:41:59
【问题描述】:
我正在尝试将应用程序从 django 1.11.1 迁移到 django 2.0.1
测试设置为在内存数据库中使用 sqlite 运行。但是每个测试都失败了,因为每个表都有sqlite3.OperationalError: database table is locked。我怎样才能知道它为什么被锁定?增加超时设置没有帮助。
我正在使用LiveServerTestCase,所以我认为测试必须在与内存数据库不同的线程中运行,并且由于某种原因它没有被共享。
【问题讨论】:
-
您的 sqlite3 数据库是否有可能在某些 IDE 中打开?
-
没有。在 wercker 上运行的测试得到相同的错误。
-
您是否在并行运行测试?
-
我如何确定我不是?即使这样,至少有一个测试应该通过,还是失败并显示不同的消息?
-
如何运行测试?你的 TestRunner 是什么?
标签: django database sqlite testing