我有一个脚本,该脚本将生成一个JSON文件(我将其称为data.json
),对于我的Django应用程序,通常可以通过运行命令来对其进行测试
python manage.py testserver data.json
但是,我想在单元测试中运行该程序,而不是通过外壳运行它(因为它将启动服务器,并且永远不会返回到外壳)。我不需要运行任何依赖此夹具的测试。我只想确保可以加载生成的灯具。
答案 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')