我有一堆单元测试文件,所有这些文件都由 django.test.TestCase 类组成。
给自己写了一个小 shell 脚本来取消注释/注释我的 __init__.py 文件中的测试文件导入,所以我可以根据我给它的命令行参数从某些测试文件运行测试。我还能够一次性运行所有测试文件的所有测试(用于回归测试目的)。
我有一个包含一些 JSON 夹具的测试文件,第一个测试检查某个模型/表中是否有 3 条记录(由 JSON 夹具定义)。
所以这就是问题所在:当我自己运行这个测试文件时,它的测试以优异的成绩通过,但是当我用所有其他测试运行测试时,我提到的那个特定的测试用例失败了。
当我运行所有测试时,数据库说表/模型中有 6 条记录,但应该只有 3 条(来自夹具),就像测试文件自己运行时一样。
我还尝试使用其他一些测试文件(不是全部)运行该测试文件并且它通过了。所以唯一没有的时候是所有测试文件都运行时。
对我来说,这似乎是 Django 或 PostgreSQL(我正在使用的 DB)中的一个错误,因为 Django TestCases 不应该在每个测试方法之间自动刷新/重置数据库,更不用说测试类了?