我正在为django-pagetree库添加Django 2.0支持。在使用SQLite内存数据库进行自动化测试时,我遇到了许多类似于以下的错误:
File "/home/nnyby/src/django-pagetree/pagetree/tests/test_models.py", line 638, in setUp
'children': [],
File "/home/nnyby/src/django-pagetree/pagetree/models.py", line 586, in add_child_section_from_dict
...
File "/home/nnyby/src/django-pagetree/venv/lib/python3.5/site-packages/django/db/backends/base/base.py", line 239, in _commit
return self.connection.commit()
django.db.utils.IntegrityError: FOREIGN KEY constraint failed
这在Django 2.0版本发布说明中有注明:https://docs.djangoproject.com/en/2.0/releases/2.0/#foreign-key-constraints-are-now-enabled-on-sqlite。从我不完全理解的描述来看,这似乎不适用于不是持久的测试数据库,对吗?使用Django 2.0时,我的sqlite测试db会创建具有适当选项的db,对吗?我用于测试的应用程序设置在这里:https://github.com/ccnmtl/django-pagetree/blob/master/runtests.py。