回答
你可以尝试在setUp()中定义你自己的验证方法。测试你的灯具是否被加载很容易,但是,验证你的灯具需要相当多的工作,这取决于你的灯具的格式。
如果在加载夹具时重复的主键产生错误,许多现有的测试将被打破。有时夹具需要包含该错误,因此可以对其进行测试。
您可以编写通用的测试,以检查你所提到的问题:
如果您的夹具加载失败,任何查询依赖于该夹具将失败。编写一个测试,试图检索在固定装置(例如,
YourObject.objects.get(pk=1)
或YourObject.objects.get(name='My Test Entry')
。要测试,如果您有重复的主键,比较
YourObject.objects.all().aggregate(Count('id', distinct=True))
到YourObject.objects.all().aggregate(Count('id'))
的对象。如果这些都不是平等的,你有重复的主键。为了避免错误格式的测试数据中,从验证数据生成它们。使用
manage.py dumpdata
,并避免手动创建或编辑灯具。
提到的第一个测试将表明,如果你有一条无效的路径。最后的建议删除了格式不正确的问题。
无声故障是loaddata
如何工作的结果。它正在寻找fixtures = []
列表中几个位置的文件名,并且可能无法在其中任何一个文件中找到文件。为了报告错误,loaddata
必须跟踪是否已找到文件,并且需要修补程序。有一个trac ticket for the silent fail,但它已经在“需要设计决定”两年的时间里进行了分类。
您可以选择在Django邮件列表中对此有所了解,并在Django的开发副本中使用the unapproved patch。
当我认为可能存在问题时,这些就是我所做的一切,但并未指出错误本身。对于多个模型和固定装置,您需要检查线条和线条以验证所有内容是否已正确加载。 – philgo20 2011-06-17 11:20:18
您只是检查灯具的第一个项目以确认它已加载。如果在运行测试时使用最高级别(-v 2),您还可以查看它是否未加载,但是您也会看到大量其他输出。我建议使用dumpdata,这样可以避免首先出现错误。检查每个条目的荒谬方法是我猜想的另一种选择。 – 2011-06-17 13:51:04
只是为了澄清我的立场,我不认为人类应该永远需要编辑序列化的数据。这对个人来说很残酷,并导致像你担心的那样的错误。只需用dumpdata制作它,并像对待垃圾桶一样对待它。 – 2011-06-17 13:56:57
- 1. django-sentry单元测试开箱错误
- 2. Resharper测试单元快捷键丢失
- 3. Django的单元测试失败是由于CSRF的cookie没有设置
- 4. 在错误的测试套件中检测到提升单元测试失败
- 5. Django的单元测试:assertEqual便()失败
- 6. Django测试错误AttributeError:'元组'对象没有属性'setdefault'
- 7. 单元测试在Django/Tastypie
- 8. 尝试在Django中定义中间件时丢失位置参数错误
- 9. 单元测试TypeInitializationException错误
- 10. 单元测试错误扔
- 11. 单元测试 - 错误
- 12. Angularjs单元测试错误
- 13. OCMock单元测试错误
- 14. 单元测试我有以下错误
- 15. Django模型在单元测试中失败,但不在shell中
- 16. Django REST测试:属性丢失
- 17. 正确的方式来单元测试没有交易错误的Django模型
- 18. rpy2-错误(没有丢失)观察
- 19. JQuery元素没有丢失
- 20. Django的AUTH_PROFILE_MODULE单元测试失败 - AttributeError的:“UserSettingsHolder”对象有没有属性“AUTH_PROFILE_MODULE”
- 21. 单元测试,误差在设置类
- 22. 错误nodejs单元测试使用茉莉,karma:require没有定义
- 23. 在Django/Python中编写单元测试
- 24. 没有架构在尝试设置现有项目中的单元测试时编译错误
- 25. Django引发IntegrityError:UNIQUE约束在单元测试中失败
- 26. Resharper中的单元测试选项丢失
- 27. Rails 3中的单元测试错误
- 28. 有没有办法让Django报告单元测试错误发生时和错误发生?
- 29. 单元测试没有失败,但挂在子程序调用
- 30. PHP APC在单元测试中失败
与以下相同。我们已经这样做了。不知道是否加载了灯具,但看到加载失败时产生的错误。 – philgo20 2011-06-17 11:21:23