如何测试Django Fixture json文件

时间:2018-12-05 03:59:01

标签: django django-testing django-tests django-fixtures django-manage.py

我有一个脚本,该脚本将生成一个JSON文件(我将其称为data.json),对于我的Django应用程序,通常可以通过运行命令来对其进行测试

python manage.py testserver data.json

但是,我想在单元测试中运行该程序,而不是通过外壳运行它(因为它将启动服务器,并且永远不会返回到外壳)。我不需要运行任何依赖此夹具的测试。我只想确保可以加载生成的灯具。

2 个答案:

答案 0 :(得分:1)

Django自己的TestCase支持通过类级别fixtures属性自动设置和拆除固定装置。例如

from django.test import TestCase

class MyTest(TestCase):

    # Must live in <your_app>/fixtures/data.json
    fixtures = ['data.json']

    def test_something(self):
        # When this runs, data.json will already have been loaded
        ...

但是,由于您只想检查是否可以加载灯具,而不是将其用作测试的一部分,因此您可以在测试代码中的某个地方调用loaddata命令。

例如

from django.core.management import call_command

call_command('loaddata', '/path/to/data.json')

答案 1 :(得分:0)

可以使用call_commands在代码中运行Django管理命令。

from django.core.management import call_command
from django.core.management.commands import testserver

call_command('testserver', 'data.json')