Тестирование конкретных приложений в Django - PullRequest
4 голосов
/ 19 ноября 2011

Насколько я знаю, можно запускать тесты либо для всех установленных приложений, либо для одного приложения.Тестирование всех приложений кажется излишним, поскольку обычно оно содержит также собственные модули Django (django.contrib.auth и т. Д.).Можно ли создать набор тестов, содержащий только те приложения, которые я укажу (в моем случае это будут все тесты из всех приложений в папке моего проекта)?

Ответы [ 3 ]

6 голосов
/ 19 ноября 2011

вы можете написать собственный тестовый прогон, который тестирует только ваши приложения. в прошлом я использовал что-то вроде

tests/runner.py * * 1004

from django.test.simple import DjangoTestSuiteRunner
from django.conf import settings

class AppsTestSuiteRunner(DjangoTestSuiteRunner):
    """ Override the default django 'test' command, include only
        apps that are part of this project
        (unless the apps are specified explicitly)
    """


    def run_tests(self, test_labels, extra_tests=None, **kwargs):
        if not test_labels:
            PROJECT_PREFIX = 'my_project.'
            test_labels = [app.replace(PROJECT_PREFIX, '')
                for app in settings.INSTALLED_APPS
                if app.startswith(PROJECT_PREFIX)]
        return super(AppsTestSuiteRunner, self).run_tests(
              test_labels, extra_tests, **kwargs)

затем вы устанавливаете его в качестве используемого по умолчанию для теста в settings.py

TEST_RUNNER = 'my_project.tests.runner.AppsTestSuiteRunner'
1 голос
/ 20 ноября 2011

использование нос и нос Джанго

После настройки просто запустите

. / Manage.py test

и это будут только тесты ваших приложений.

1 голос
/ 19 ноября 2011

Похоже, вам придется запускать тесты без тестера Django.

https://docs.djangoproject.com/en/dev/topics/testing/#running-tests-outside-the-test-runner

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...