【问题标题】:TypeError: issubclass() arg 1 must be a class in Django testsTypeError: issubclass() arg 1 必须是 Django 测试中的一个类
【发布时间】:2019-05-27 07:08:06
【问题描述】:

我正在使用 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 长什么样子?
  • 最小的完整可重现示例和完整的回溯请...
  • parent 变量是什么?
  • 问题已编辑
  • 向我们展示您的specific_test 方法(以及它所属的类)

标签: python django unit-testing


【解决方案1】:

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

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

我必须运行才能真正让它工作的是:./manage.py test myapp.tests.test_file:MyTestCase.test_something(注意文件名和类名之间的:

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

【讨论】:

  • 没错。这就是问题所在。
  • 还有其他人使用 PyCharm 并且知道如何自动解决这个问题吗?
  • @michaelsnowden 你需要在settings.py 中指定你的测试运行器TEST_RUNNER = "django_nose.NoseTestSuiteRunner"(或任何你的运行器)你在Preferences &gt; Languages &amp; Frameworks &gt; Django 中设置,而不是在你的测试/运行中设置的那个配置
【解决方案2】:

要在 Pycharm 中解决此问题,您需要在 settings.py 中指定您的测试运行程序 TEST_RUNNER = "django_nose.NoseTestSuiteRunner"(或任何您的运行程序)在 Preferences &gt; Languages &amp; Frameworks &gt; Django 中设置,而不是在您的测试/运行配置中设置.

请参阅以下内容的 cmets:

【讨论】:

    猜你喜欢
    • 2021-10-12
    • 2016-02-05
    • 1970-01-01
    • 2019-11-28
    • 1970-01-01
    • 1970-01-01
    • 2022-07-09
    • 2019-04-26
    • 2013-01-18
    相关资源
    最近更新 更多