django - 使用 sqlite 进行 django 单元测试时出现这种副作用的原因是什么?

标签 django unit-testing sqlite

我的一个单元测试在独立执行时运行正常,但在与测试用例的其他测试一起执行时失败。

我在发送发布请求时收到意外的 404 状态。

从数据库中获取对象时,pb 似乎是由 404 异常引起的。如果我在之前的测试中对同一 View 的另一篇文章发表评论,那么问题就不会再发生了。

pb 似乎是由 sqlite(内存或文件)引起的。使用 mysq 时没有错误,但测试过程要慢得多。

任何想法,什么可以解释这种行为以及如何纠正这个 pb?

最佳答案

需要记住 sqlite 与 mysql 的一些差异,其中之一是区分大小写。默认情况下,mysql 查询不区分大小写,但 sqlite 查询区分大小写。所以像 MyModel.objects.get(slug="Asdf") 这样的查找可能会找到带有 slug 的模型 asdf使用 mysql 但不使用 sqlite

关于django - 使用 sqlite 进行 django 单元测试时出现这种副作用的原因是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7993801/

相关文章:

python - FK select 的显示选项 - Django Rest Framework

unit-testing - Controller 测试期间“Failed to load ApplicationContext”错误,并且无法创建Bean

sqlite - Alamofire v4、Swift v3 将 Sqlite 文件上传到域

node.js - 如何使用sequelize重置autoIncrement主键?

django - 在 Django 中翻译格式化字符串不起作用

javascript - 如何使用 Javascript 动态填充 Django 模板中的选择列表?

python - 在 django 中上传时使用 pil 调整图像大小

python - 使用 setup.py test 和 tox 运行 Django 测试

python - 如何基于 SQLAlchemy Declarative 正确测试 Python Flask 系统

Android GreenDao 根据条件更新单个字段