装载夹具Django

时间:2013-03-18 14:26:46

标签: python django django-fixtures

我正在尝试在我的Django测试中加载一些灯具,但它们似乎没有加载。

在我的settings.py中,我指定:

FIXTURE_DIRS = (os.path.join(PROJECT_DIR, 'dhtmlScheduler\\fixtures\\'))

现在,在我的测试用例中:

def setUp(self):
    fixtures = ['users.json', 'employee.json']

我还应该提一下,我正在使用Nose测试跑步者:

TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'

和unittest:

class TestEmployee(unittest.TestCase):

我必须遗漏一些明显的东西,有人能指出我正确的方向吗?

3 个答案:

答案 0 :(得分:3)

FIXTURE_DIRS应该是列表或元组,而不是字符串。请记住,这是逗号定义一个元组的逗号,而不是parens,IOW你的设置应该是

FIXTURE_DIRS = (
    os.path.join(PROJECT_DIR, 'dhtmlScheduler\\fixtures\\'), 
    )

作为旁注,对路径分隔符进行硬编码会破坏使用os.path.join()的全部意义,所以这应该是:

FIXTURE_DIRS = (
    os.path.join(PROJECT_DIR, 'dhtmlScheduler', 'fixtures'), 
    )

编辑:最后,你必须在类级别声明你的TestCase灯具,而不是在setUp()方法... ...

答案 1 :(得分:0)

FIXTURE_DIRS = (os.path.join(PROJECT_ROOT, 'fixtures'),)

from django.test import TestCase

class MyTestCase(TestCase):
     fixtures = [
        '/myapp/fixtures/users.json', 
        '/myapp/fixtures/employee.json'
     ]

答案 2 :(得分:0)

在您的测试用例文件中,以这种方式简单地引用您的预定义装置,如下所示 enter image description here