我有Django 1.4。在我的test.py中,我得到了必要的TestCase导入:
from django.test import TestCase
为了找出问题,我添加了一行:
fixtures = ['westeros']
到默认示例测试用例,即
class SimpleTest(TestCase):
fixtures = ['westeros']
def test_basic_addition(self):
"""
Tests that 1 + 1 always equals 2.
"""
self.assertEqual(1 + 1, 2)
使用django-admin.py dumpdata,我在customers / fixtures目录中创建了一个名为“westeros”的fixture文件,其中“customers”是settings.INSTALLED_APPS中列出的应用程序。
当我运行测试时,任何详细程度,Django都会忽略夹具并通过test_basic_addition
测试。没有错误,没有夹具加载。就好像TestCase导入不存在一样。关于什么可能是错误的或者如何调试它的任何想法?
答案 0 :(得分:2)
在定义fixtures
时,可以省略扩展名,即
fixtures = ['westeros']
但是,fixture文件本身必须具有与其序列化程序对应的扩展名,例如j {@ {1}},westeros.json
或westeros.json.zip
,分别为json,zipped json或xml。
答案 1 :(得分:1)
您的westeros
文件位于何处?
它需要位于应用内的fixtures
目录中,或位于FIXTURE_DIRS
文件中settings.py
指定的目录
您可以使用verbosity=2
的测试运行以获得完整输出。
https://docs.djangoproject.com/en/1.0/ref/django-admin/#test
你的灯具文件名为westeros
吗?还是有文件扩展名?
如你所见,Django会在夹具加载时静默失败。 (至少在1.3之前,我还没有在新的1.4版本中使用过灯具)。但是你实际上并没有测试灯具是否正在加载。
抛出self.assertGreater(YourModel.objects.all(), 0)
或某些东西来验证没有对象,或者放入一个debbuger并开始查询你的某些模型。