Есть ли способ предотвратить ./manage.py test
от запуска тестов на установленных приложениях, таких как django.contrib.auth
?Запретить Django запускать тесты Contrib?
ответ
Ну правильное решение, как сказал lazerscience:
python manage.py test appname appname.SomeTestCase appname.TestCase.test_method
Когда вы просто run test command все приложения в INSTALLED_APPS будут опробованы в том числе из вно (например, авт, админ, сайты и т.д.).
Также, если какой-либо тест терпит неудачу, это означает, что что-то не работает должным образом, вы должны исправить проблему, а затем скрыть тест с ошибкой. Если тесты Django не работают, убедитесь, что вы используете стабильную версию.
Как я ответил lazerscience: это не облегчает тестирование всего, скажем, 10 пользовательских приложений моего сайта сразу :( –
Я пишу пользовательский тестовый бегун для своего проекта, который идет по дереву проекта, импортирует все модули, выполняет итерации через классы в каждом модуле, ищет подклассы unittest.TestCase и добавляет их все в TestSuite, затем запускает их. Таким образом, я могу отфильтровать файлы django.contrib, а также включить некоторые из моих собственных unittest.TestCases, которые управляют.py игнорируются (потому что они не находятся в myapp/tests.py и т. Д.)
Я только просто написал это и, несомненно, полный ошибок, но на сегодняшний день это выглядит так:
from inspect import getmembers, isclass
import os
from os.path import join, relpath
import sys
from unittest import TestCase, TestLoader, TestSuite, TextTestRunner
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
from django.test.utils import setup_test_environment
sys.path.append('..')
def import_module(modname):
print modname
try:
__import__(modname)
return sys.modules[modname]
except Exception as e:
print
print ' %s: %s' % (type(e).__name__, e)
def get_modules(root):
for subdir, dirs, fnames in os.walk(root):
for fname in fnames:
if fname.endswith('.py'):
path = relpath(join(subdir, fname))
modname = path.replace('/', '.')[:-3]
if modname.endswith('__init__'):
modname = modname[:-9]
if modname == '':
continue
yield import_module(modname)
def get_testcases(module):
for name, value in getmembers(module):
if isclass(value) and issubclass(value, TestCase) and value is not TestCase:
print ' ', name, value
yield value
def main():
setup_test_environment()
testcases = set()
for module in get_modules(os.getcwd()):
for klass in get_testcases(module):
testcases.add(klass)
print 'found %d testcases' % (len(testcases),)
suite = TestSuite()
for case in testcases:
suite.addTest(TestLoader().loadTestsFromTestCase(case))
print 'loaded %d tests' % (suite.countTestCases(),)
TextTestRunner(verbosity=2).run(suite)
if __name__ == '__main__':
main()
- 1. Когда запускать модульные тесты?
- 2. Нос не запускать тесты
- 3. Параллельно запускать тесты python
- 4. Нужно запускать тесты и тесты TestNG параллельно
- 5. Могу ли я запускать тесты django (manage.py) из другого каталога?
- 6. Django не может запускать тесты, когда DATABASES «по умолчанию» пуст
- 7. Можно ли запускать тесты Django на Apache вместо сервера разработки?
- 8. Как я могу запускать модульные тесты django (через manage.py) быстрее
- 9. Как автоматически запускать тесты при запуске Django-сервера?
- 10. найти django/contrib/admin/templates
- 11. Gradle: запускать тесты из зависимости
- 12. connectedAndroidTest как запускать конкретные тесты
- 13. тест Maven не запускать тесты
- 14. Как запускать тесты Jest последовательно?
- 15. Как запускать тесты maven последовательно
- 16. Qunit можно запускать тесты автоматически?
- 17. Maven не будет запускать тесты
- 18. Django входа тесты сессии проблемы
- 19. Grunt grunt-contrib-jasmine
- 20. ExUnit - запускать все тесты, хранящиеся в пользовательском каталоге (не тесты /)
- 21. Запретить Google автоматически запускать данные-onsuccess = "onSignIn"
- 22. Запретить пользователям запускать несколько учетных записей?
- 23. Лучшая практика для обновления Django contrib
- 24. Проблемы с Django contrib, показывающие пустые шаблоны
- 25. Django contrib admin admin admin и пароль
- 26. Grunt-contrib-watch with grunt-contrib-connect
- 27. Во время git bisect безопасно ли запускать только провальные тесты? или мы должны запускать все тесты?
- 28. Grunt не может запускать SASS (grunt-contrib-sass)
- 29. функциональные тесты = Интеграционные тесты? В django
- 30. Django запускает все тесты сразу
IIRC 'django.contrib' - это каталог, а не приложение. Какие тесты находятся в этом каталоге? –
вы можете просто запустить './manage.py test appname' –
@ S.Lott по крайней мере, я получаю сбой для' test_current_site_in_context_after_login (django.contrib.auth.tests.views.LoginTest) 'при запуске'. /manage.py test'. –