加载Django测试数据
我在尝试在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
在你的测试案例文件中,只需像下面这样引用你预先定义好的数据。你可以参考下面的图片来了解具体的写法。
1
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'
]
8
FIXTURE_DIRS 应该是一个列表或元组,而不是一个字符串。记住,定义元组的关键在于逗号,而不是括号。换句话说,你的设置应该是这样的:
FIXTURE_DIRS = (
os.path.join(PROJECT_DIR, 'dhtmlScheduler\\fixtures\\'),
)
另外,直接写死路径分隔符其实有点违背使用 os.path.join() 的初衷,所以最好是这样:
FIXTURE_DIRS = (
os.path.join(PROJECT_DIR, 'dhtmlScheduler', 'fixtures'),
)
补充一下,最后你需要在类级别声明你的 TestCase fixtures,而不是在 setUp() 方法里...