Chúng tôi có một loạt lệnh trong trang web Django của chúng tôi, một số là quản trị và một số chạy trên cron job mà tôi không thể tìm ra cách kiểm tra. Họ khá nhiều giống như thế này:Chạy lệnh quản lý Python/Django từ 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
Và tôi có một số xét nghiệm, mà trông như thế này:
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.
Trong thử nghiệm của tôi (nơi tôi có những nhận xét) Tôi muốn chạy NoArgsCommand của tôi để xem điều gì xảy ra với người dùng mới của tôi. Tôi không thể tìm thấy bất kỳ tài liệu hoặc ví dụ về cách thực hiện điều này. Cũng lưu ý rằng môi trường thử nghiệm của tôi là một SQLlite DB mà tôi tạo từ đầu trong bộ nhớ, tải một số đồ đạc và các đối tượng vào và chạy thử nghiệm của tôi, nhiều như tôi muốn thiết lập dữ liệu trong DB thực, sau đó chỉ cần chạy lệnh từ dòng lệnh, tôi không thể, nó quá tốn thời gian. bất kì ý kiến nào đều được đánh giá cao.
RTFM, doh! Cảm ơn bạn, tôi đã không nhận thức được rằng thậm chí tồn tại. – scoopseven
Xảy ra cho tất cả chúng ta, đặc biệt là vào thứ Sáu :) Và tất nhiên, bạn được chào đón! – kgr
Cảm ơn! Tôi đã cố gắng để chạy thử nghiệm đơn vị của tôi từ Visual Studio và không thể có được nó cho đến khi tôi theo liên kết tham khảo của bạn. – TurboGus