如何测试 django fixture json 文件

how to test django fixture json file

我有一个脚本可以为我的 django 应用程序生成一个 JSON 文件(让我称之为 data.json),通常我可以通过 运行ning 命令测试它

python manage.py testserver data.json

但是,我想在单元测试中 运行 这个东西而不是 运行 通过 shell 这个东西(因为它会启动一个服务器并且永远不会 return 返回shell)。我不需要 运行 任何依赖于此装置的测试。我只想确保生成的夹具可以加载。

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

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

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

Django 自己的 TestCase 支持通过 class 级别 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')