TypeError:issubclass()arg 1必须是Django测试中的类

时间:2019-05-27 07:08:07

标签: python django unit-testing

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

2 个答案:

答案 0 :(得分:2)

当我没有正确指向要运行的测试时,我会收到此错误。

当我尝试运行特定的测试方法时,我尝试了以下操作,并得到您提到的错误:./manage.py test myapp.tests.test_file.MyTestCase.test_something

要使其真正起作用,我必须运行的是:./manage.py test myapp.tests.test_file:MyTestCase.test_something(注意文件名和类名之间的:

我相信这个问题是特定于“鼻子”的。

答案 1 :(得分:0)

要在 Pycharm 中解决此问题,您需要在 TEST_RUNNER = "django_nose.NoseTestSuiteRunner" 中设置的 settings.py 中使用 Preferences > Languages & Frameworks > Django(或任何您的运行器)指定您的测试运行器,而不是设置的那个在您的测试/运行配置中。

查看以下评论​​: