TypeError: issubclass() arg 1 должен быть классом в тестах Django

Я использую Django 2.1.5 и pycharm. При запуске тестов из Pycharm я начал получать эту ошибку:

File "/Users/..../lib/python3.6/site-packages/nose/loader.py", line 576, in _makeTest
if issubclass(parent, unittest.TestCase):

TypeError: issubclass() arg 1 должен быть классом

Я получаю это только при попытке запустить один тест (а не тестовый класс). Также получаю это при попытке запустить его через

python manage.py test specific_test

Я понимаю значение ошибки, но я не понимаю, почему я начал получать это внезапно.

Обновлено:

Полная трассировка:

Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/unittest/case.py", line 59, in testPartExecutor
yield
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/unittest/case.py", line 605, in run
testMethod()
File "/..../lib/python3.6/site-packages/nose/failure.py", line 39, in runTest
raise self.exc_val.with_traceback(self.tb)
File "/..../lib/python3.6/site- 
packages/nose/loader.py", line 523, in makeTest
return self._makeTest(obj, parent)
File "/..../lib/python3.6/site-packages/nose/loader.py", line 576, in _makeTest
if issubclass(parent, unittest.TestCase):
TypeError: issubclass() arg 1 must be a class

родитель

<function MyTestClass.test_function at 0x10ff32f28>

как выглядит specific_test?

Adelin 27.05.2019 09:14

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

bruno desthuilliers 27.05.2019 09:16

Что такое переменная parent?

Sergey Pugach 27.05.2019 09:20

Вопрос отредактирован

user2880391 27.05.2019 10:22

покажите нам свой метод specific_test (и класс, к которому он принадлежит)

dirkgroten 27.05.2019 12:40
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
3
5
1 896
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Я получаю эту ошибку, когда неправильно указываю на тест, который пытаюсь запустить.

Когда я попытался запустить определенный метод тестирования, я попробовал следующее и получил указанную вами ошибку: ./manage.py test myapp.tests.test_file.MyTestCase.test_something

Чтобы заставить его работать, мне пришлось запустить: ./manage.py test myapp.tests.test_file:MyTestCase.test_something (обратите внимание на : между именем файла и именем класса)

Я считаю, что эта проблема специфична для «носа».

Точно. В этом была проблема.

user2880391 21.01.2020 09:57

Кто-нибудь еще использует PyCharm и знает, как это автоматически исправить?

michaelsnowden 12.08.2020 01:23

@michaelsnowden вам нужно указать своего тестового бегуна с помощью TEST_RUNNER = "django_nose.NoseTestSuiteRunner" (или любого другого вашего бегуна) в settings.py, который вы настроили в Preferences > Languages & Frameworks > Django, а не тот, который установлен в вашей конфигурации теста / запуска.

theannouncer 16.03.2021 05:32

Чтобы исправить это в Pycharm, вам нужно указать свой тестовый бегун с помощью TEST_RUNNER = "django_nose.NoseTestSuiteRunner" (или любого другого вашего бегуна) в settings.py, который вы установили в Preferences > Languages & Frameworks > Django, а НЕ тот, который установлен в вашей конфигурации теста/запуска.

Смотрите комментарии к следующему:

Другие вопросы по теме