ple*_*top 7 testing django testcase autoflush django-tests
我有一堆单元测试文件,所有这些文件都由 django.test.TestCase 类组成。
自己写了一个小 shell 脚本来取消注释/注释我的 __init__.py 文件中的测试文件导入,因此我可以根据我提供的命令行参数从某些测试文件运行测试。我还能够一次性运行所有测试文件的所有测试(用于回归测试)。
我有一个包含一些 JSON 固定装置的测试文件,第一个测试检查某个模型/表中是否有 3 条记录(由 JSON 固定装置定义)。
所以问题来了:当我自己运行这个测试文件时,它的测试以优异的成绩通过,但是当我用所有其他测试运行测试时,我提到的那个特定的测试用例失败了。
当我运行所有测试时,数据库说表/模型中有 6 条记录,但应该只有 3 条(来自夹具),就像测试文件本身运行时一样。
我还尝试使用其他一些测试文件(不是全部)运行该测试文件,并且它通过了。所以唯一没有的时候,是当所有测试文件都运行时。
对我来说,这似乎是 Django 或 PostgreSQL(我正在使用的数据库)中的一个错误,因为 Django TestCases 不应该在每个测试方法之间自动刷新/重置数据库,更不用说测试类了?
这可能是由于 Django 中 TestCase 和 TransactionTestCase 之间的清理方式不同所致。在 Django 1.5 之前,TransactionTestCases 需要在 TestCases 之后运行(Django 的 testunner 会为你做到这一点)。不过,这应该在 1.5 中得到修复,因此请尝试在那里再次运行测试...
| 归档时间: |
|
| 查看次数: |
1286 次 |
| 最近记录: |