Правильно, прописать в
settings.TEST_RUNNER
свой запускальщик тестов. Можно просто скопировать (что я и сделал) стандартный джанговский django.test.simple.run_tests
, убрав из него все упоминания о базе данных.у меня получилось что-то такое:
# -*- coding: utf-8 -*-
import unittest
from django.conf import settings
from django.db.models.loading import get_apps, get_app
from django.test.simple import build_test, build_suite, reorder_suite
from django.test.utils import setup_test_environment, teardown_test_environment
from django.test.testcases import TestCase
def run_tests(test_labels, verbosity=1, interactive=True, extra_tests=[]):
setup_test_environment()
settings.DEBUG = False
suite = unittest.TestSuite()
if test_labels:
for label in test_labels:
if '.' in label:
suite.addTest(build_test(label))
else:
app = get_app(label)
suite.addTest(build_suite(app))
else:
for app in get_apps():
suite.addTest(build_suite(app))
for test in extra_tests:
suite.addTest(test)
suite = reorder_suite(suite, (TestCase,))
result = unittest.TextTestRunner(verbosity=verbosity).run(suite)
teardown_test_environment()
return len(result.failures) + len(result.errors)
No comments:
Post a Comment