【发布时间】: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