【发布时间】:2011-01-03 11:42:44
【问题描述】:
我是 Python 和 Django 的新手,我正在通过创建一个饮食管理网站来学习,但我完全被运行单元测试所击败。我发现的所有文档和博客都说,只要可以从tests.py 中发现,tests.py 与models.py 和您的测试类子类TestCase 位于同一个文件夹中,它应该都会自动获取。这对我不起作用,当我运行 manage.py test <myapp> 时,它没有找到任何测试。
我开始时将所有测试都放在他们自己的包中,但已将其简化为所有测试都在我的 tests.py 文件中。当前的 tests.py 看起来像:
import unittest
from pyDietTracker.models import Weight
from pyDietTracker.weight.DisplayDataAdapters import DisplayWeight
class TestDisplayWeight(unittest.TestCase):
def setUp(self):
pass
def tearDown(self):
pass
def testGetWeightInStone_KG_Correctly_Converted(self):
weight = Weight()
weight.weight = 99.8
testAdapter = DisplayWeight(weight)
self.assertEquals(testAdapter.GetWeightInStone(), '15 st 10 lb')
我也尝试过继承 Django TestCase 类,但这也不起作用。我正在使用 Django 1.1.1、Python 2.6 并且正在运行 Snow Leopard。
我确定我遗漏了一些非常基本和明显的东西,但我就是不知道是什么。有什么想法吗?
编辑:评论后的快速更新
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.admin',
'pyDietTracker',
)
为了让测试运行,我正在运行manage.py test pyDietTracker
【问题讨论】:
-
您正在运行什么命令来执行这些命令?你的
settings是什么样的?此应用程序是否在 INSTALLED_APPS 列表中? -
我已经用我的 INSTALLED_APPS 更新了这个问题,还有其他相关的设置部分吗?谢谢
-
你实际收到了什么消息?
-
我没有收到错误消息,它只是说 0 个测试运行。我远离计算机 atm,但是当我尝试直接命名测试类时,我得到一个错误,类似于不合适的测试用例。我会在我回来的时候准确地发布它。
-
@L2Type:您不能轻易地直接命名 TestCase 类。您命名应用程序,Django 运行程序通过查看 models.py 和 tests.py 来完成它的发现工作
标签: python django unit-testing