【问题标题】:Django Test Runner Not Finding Test MethodsDjango Test Runner 找不到测试方法
【发布时间】:2016-01-28 13:31:02
【问题描述】:

我最近从 Django 1.4 升级到 1.9,并意识到我的测试发生了一些奇怪的事情。这是项目结构:

project
  manage.py
  app/
    __init__.py
    tests/
      __init__.py
      test_MyTests.py

test_MyTests.py 文件如下所示:

from django.test import TestCase

class MyTests(TestCase):
    def test_math(self):
        self.assertEqual(2, 2)

    def test_math_again(self):
        self.assertEqual(3, 3)

测试运行器可以在我运行时找到所有测试 ./manage.py test app./manage.py test app.tests。但是,当我尝试运行 ./manage.py test app.tests.MyTests 时,我得到:

  File "/usr/lib/python2.7/unittest/loader.py", line 100, in    loadTestsFromName
parent, obj = obj, getattr(obj, part)
AttributeError: 'module' object has no attribute 'MyTests'

如果我将测试类名称更改为 test_MyTests,我可以运行 ./manage.py test app.tests.test_Mytests,它会找到所有测试。虽然我正在阅读 Django 文档,但文件名和类名似乎不必相同。在上面显示的任何一种情况下,我仍然无法运行这样的单独测试,./manage.py test app.tests.MyTests.test_math

我希望能够运行单独的测试和测试类,有人可以帮我吗?谢谢。

【问题讨论】:

    标签: python django unit-testing testing


    【解决方案1】:

    app.tests.test_MyTests 部分test_MyTests 是模块名称,而不是类。要运行test_math,您应该指定此方法的完整路径:

    python manage.py test app.tests.test_MyTests.MyTests.test_math
    

    【讨论】:

      【解决方案2】:

      Y 有同样的问题,是我忘记删除默认文件 tests.py django 创建应用程序时自动创建的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-14
        • 1970-01-01
        • 2013-04-19
        • 2015-05-22
        • 1970-01-01
        • 2010-09-26
        相关资源
        最近更新 更多