python - 看不到 Django 测试用例插入的记录

标签 python django testing sqlite

我正在尝试通过提交后 Hook 从颠覆向我的 Django 应用程序提供集成。

我有一个 django 测试用例(unittest.TestCase 的子类),它 (a) 将几条记录插入表中,(b) 产生一个 svn 提交,(c) svn 提交运行一个使用我的 django 的钩子(Hook)查找信息的模型。

我正在使用 sqlite3 数据库。测试使用 :memory: db,它使用的是真实文件。我已经修改了 Django 测试代码(用于调试此问题)以避免在完成时删除测试数据库,以便我可以检查它。

测试代码转储 model.MyModel.objects.all() 并且记录在 (a) 和 (b) 之间。

当钩子(Hook)在 (c) 处触发时,它也会转储模型并且没有记录。当我在测试运行后手动检查数据库时,没有任何记录。

django 测试框架中是否发生了某些未将记录提交到 db 文件的事情?

澄清:(d) 结束测试用例。因此,svn 提交 Hook 在测试用例终止之前运行,并且在任何 django 数据库清理代码应该运行之前运行。

额外信息:我在 (b) 和 (b) 之间添加了 15 秒的延迟,以便我可以在测试中间手动检查 db 文件。记录不在文件中。

最佳答案

你在使用 Django trunk 吗?最近的更改 (Changeset 9756) 在事务中运行测试,然后回滚。这是签到评论:

Fixed #8138 -- Changed django.test.TestCase to rollback tests (when the database supports it) instead of flushing and reloading the database. This can substantially reduce the time it takes to run large test suites.

关于python - 看不到 Django 测试用例插入的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1203295/

相关文章:

python - 如何确定 token 是否是 Spacy 中实体的一部分?

python - 无法在 macOS Catalina 上安装 psycopg2

python - Django 中间件线程安全吗?

ruby-on-rails - 在测试环境中手动测试 Rails 应用程序

python - 使用 value_counts 查找列组合中的唯一值

python - Django 1.7 : serve a pdf -file (UnicodeDecodeError)

python - django、python中context_dict和context有什么区别?

python django 在服务器中运行 bash 脚本

spring - 如何在 Spring MVC 测试中设置 Web 应用程序上下文

java - 如何找出由我的测试引起的 JDK 代码覆盖率?