在django单元测试中加载装置

我正在尝试开始为django编写单元测试,并且遇到一些关于fixtures的问题:

我做了我的整个项目数据库(不是某些应用程序)的夹具,我想为每个测试加载它,因为它看起来像只加载某些应用程序的夹具是不够的。

我想将夹具存储在/proj_folder/fixtures/proj_fixture.json中。

我在FIXTURE_DIRS = ('/fixtures/',)设置了FIXTURE_DIRS = ('/fixtures/',) 。 然后在我的测试用例中,我正在尝试

fixtures = ['proj_fixture.json']

但我的灯具不加载。 这怎么解决? 如何添加搜索灯具的地方? 一般来说,为每个应用程序中的每个测试加载整个test_db的fixture是否可以(如果它很小)? 谢谢!


你真的有一个文件夹/fixtures/在你的硬盘上?

您可能打算使用:

FIXTURE_DIRS = ('/path/to/proj_folder/fixtures/',)

我已经在TestCase中指定了相对于项目根的路径,如下所示:

from django.test import TestCase

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

并且它没有使用FIXTURE_DIRS


良好的做法是在settings.py中使用PROJECT_ROOT变量:

import os.path
PROJECT_ROOT = os.path.dirname(os.path.realpath(__file__))
FIXTURE_DIRS = (os.path.join(PROJECT_ROOT, 'fixtures'),)
链接地址: http://www.djcxy.com/p/52297.html

上一篇: Loading fixtures in django unit tests

下一篇: loading fixtures for django tests