Я использую 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>
минимальный полный воспроизводимый пример и полная трассировка, пожалуйста...
Что такое переменная parent
?
Вопрос отредактирован
покажите нам свой метод specific_test
(и класс, к которому он принадлежит)
Я получаю эту ошибку, когда неправильно указываю на тест, который пытаюсь запустить.
Когда я попытался запустить определенный метод тестирования, я попробовал следующее и получил указанную вами ошибку: ./manage.py test myapp.tests.test_file.MyTestCase.test_something
Чтобы заставить его работать, мне пришлось запустить: ./manage.py test myapp.tests.test_file:MyTestCase.test_something
(обратите внимание на :
между именем файла и именем класса)
Я считаю, что эта проблема специфична для «носа».
Точно. В этом была проблема.
Кто-нибудь еще использует PyCharm и знает, как это автоматически исправить?
@michaelsnowden вам нужно указать своего тестового бегуна с помощью TEST_RUNNER = "django_nose.NoseTestSuiteRunner"
(или любого другого вашего бегуна) в settings.py
, который вы настроили в Preferences > Languages & Frameworks > Django
, а не тот, который установлен в вашей конфигурации теста / запуска.
Чтобы исправить это в Pycharm, вам нужно указать свой тестовый бегун с помощью TEST_RUNNER = "django_nose.NoseTestSuiteRunner"
(или любого другого вашего бегуна) в settings.py
, который вы установили в Preferences > Languages & Frameworks > Django
, а НЕ тот, который установлен в вашей конфигурации теста/запуска.
Смотрите комментарии к следующему:
как выглядит
specific_test
?