我有一堆单元测试文件,所有这些文件都包含django.test.TestCase类。
在我的__init__.py文件中写了一个小shell脚本来取消注释/注释测试文件导入,所以我可以根据我提供的命令行参数从某些测试文件运行测试。我也可以一次性运行所有测试文件的所有测试(用于回归测试)。
我有一个测试文件有一些JSON夹具,第一个测试检查某个模型/表中有3条记录(由JSON夹具定义)。
所以这就是问题所在:当我自己运行这个测试文件时,它的测试会以漂亮的颜色传递,但是当我用所有其他测试运行测试时,我提到的那个特定的测试用例都失败了。
当我运行所有测试时,数据库表示表/模型中有6条记录,但应该只有3条(来自灯具),就像测试文件本身运行时一样。
我还尝试使用其他一些测试文件(不是全部)运行该测试文件,然后通过。所以它唯一没有的时候就是运行所有测试文件。
对我而言,这似乎是Django或PostgreSQL(我正在使用的数据库)中的一个错误,因为Django TestCases不应该在每个测试方法之间自动刷新/重置数据库,更不用说测试类了?
答案 0 :(得分:0)
这可能是由于Django中TestCase和TransactionTestCase之间的清理方式不同。之前需要在TestCase之后运行Django 1.5 TransactionTestCases(而Djangos testunner为你做了这个)。这应该是fixed in 1.5,所以请尝试再次运行测试......