【发布时间】:2011-10-04 20:06:35
【问题描述】:
我已将 project/app/tests.py 替换为 project/app/tests/ 目录。该目录包含多个 Python 文件(称为apples.py、bananas.py 等),每个文件定义一个或多个派生自TestCase 的类(称为TestApples、TestBananas 等)。文件project/app/tests/__init__.py 包含
from apples import TestApples
from bananas import TestBananas
命令manage.py test app 仍然有效,但manage.py test app.bananas 和manage.py test app.tests.bananas 无效,例如:
ValueError: Test label 'app.bananas' does not refer to a test
manage.py test app.tests.bananas 失败并出现同样的错误,但manage.py test app.tests.bananas.TestBananas 更有希望:
ValueError: Test label 'store.tests.bananas.TestBananas' should be of the form app.TestCase or app.TestCase.test_method
Django 文档和Python docs 建议解决方案是编写自定义测试运行器或测试收集器并将其插入; this StackOverflow question 走同样的路,然后似乎建议切换到 django-nose。除非必须,否则我宁愿不这样做,而且我很想知道如何使用 Django 的标准工具来完成这项工作。有人有一个简单的(ish)解决方案吗?
【问题讨论】:
-
我最近问了一个非常相似的问题。我被引导到 django-nose,我很高兴地进行了切换。所需的工作几乎没有,因为测试本身不需要更改。您是否有具体的理由不进行转换?
标签: django unit-testing