簡體   English   中英

TypeError: issubclass() arg 1 必須是 Django 測試中的一個類

[英]TypeError: issubclass() arg 1 must be a class in Django tests

我正在使用 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):

類型錯誤: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>

當我沒有正確指向我嘗試運行的測試時,我會收到此錯誤。

當我嘗試運行特定的測試方法時,我嘗試了以下操作並得到了您提到的錯誤: ./manage.py test myapp.tests.test_file.MyTestCase.test_something

我必須運行才能讓它真正工作的是: ./manage.py test myapp.tests.test_file:MyTestCase.test_something (注意:在文件名和類名之間)

我相信這個問題特定於“鼻子”。

要在 Pycharm 中解決此問題,您需要在您在Preferences > Languages & Frameworks > DjangoPreferences > Languages & Frameworks > Djangosettings.py使用TEST_RUNNER = "django_nose.NoseTestSuiteRunner" (或任何您的運行程序)指定您的測試運行程序,而不是在您的測試/運行配置。

請參閱以下評論:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM