Если вы используете какой-либо инструмент покрытия, было бы хорошо называть его кодом:
from django.core.management import call_command
from django.test import TestCase
class CommandsTestCase(TestCase):
def test_mycommand(self):
" Test my custom command."
args = []
opts = {}
call_command('mycommand', *args, **opts)
# Some Asserts.
Ответ 2
Вы должны сделать свою фактическую команду script минимально возможной, чтобы она просто вызывала функцию в другом месте. Затем эту функцию можно протестировать с помощью модульных тестов или доктрин, как обычно.
def test_command_style(self):
out = StringIO()
management.call_command('dance', style='Jive', stdout=out)
self.assertEquals(out.getvalue(),
"I don't feel like dancing Jive.")
Ответ 4
Я согласен с Даниэлем в том, что фактическая команда script должна сделать минимально возможную, но вы также можете проверить ее непосредственно в Django unit test с помощью os.popen4.
Внутри unit test у вас может быть команда типа
fin, fout = os.popen4('python manage.py yourcommand')
result = fout.read()
Затем вы можете проанализировать содержимое результата, чтобы проверить, была ли выполнена ваша команда Django.