У нас есть команда команд на нашем сайте Django, некоторые из которых являются административными, а некоторые из которых выполняются на заданиях cron, которые я не могу понять, как тестировать. Они в значительной степени выглядеть следующим образом:Выполнение команды управления Python/Django с помощью UnitTest/WebTest
# Saved in file /app/management/commands/some_command.py
# Usage: python manage.py some_command
from django.core.management.base import NoArgsCommand
class Command(NoArgsCommand):
def handle_noargs(self, **options):
# Do something useful
И у меня есть несколько тестов, которые выглядят следующим образом:
import unittest
from django.test import TestCase
from django_webtest import WebTest
class SomeTest(WebTest):
fixtures = ['testdata.json']
def setUp(self):
self.open_in_browser = False
# Set up some objects
def test_registration(self):
response = self.client.get('/register/')
self.assertEqual(response.status_code, 200)
form = self.app.get('/register/').forms[1]
# Set up the form
response = form.submit()
self.assertContains(response, 'You are Registered.')
if self.open_in_browser:
response.showbrowser()
# Here I'd like to run some_command to see the how it affects my new user.
В моем тесте (где у меня есть комментарий) Я хотел бы, чтобы запустить свой NoArgsCommand чтобы узнать, что произойдет с моим новым пользователем. Я не могу найти документацию или примеры того, как это сделать. Также обратите внимание, что моя тестовая среда - это SQLlite DB, которую я создаю с нуля в памяти, загружаю некоторые приборы и объекты в свои тесты и запускаю их, так что я хотел бы настроить данные в реальной БД, а затем просто запустить мои команды из командной строки, я не могу, это слишком много времени. Любые идеи очень приветствуются.
RTFM, DOH! Спасибо, я не знал, что это даже существовало. – scoopseven
Случается всем нам, особенно по пятницам :) И, конечно же, пожалуйста! – kgr
Спасибо! Я пытался запустить модульное тестирование из Visual Studio и не смог получить его, пока не выполнил вашу ссылку. – TurboGus