为什么Django测试运行器无法找到我创建的测试?

3
我一直在尝试为我正在开发的项目添加测试。
这些测试位于forum/tests/目录下。
当我运行manage.py test时,它找不到我创建的任何测试,但可以找到Django 1.2中的测试。
一开始我把所有的测试放在它们自己的包中,但现在已经简化成只在我的tests.py文件中。当前的tests.py文件看起来像这样:
from django.test.client import Client  
from django.test import TestCase  
from utils import *   
from forum.models import *  
from forum import auth  

class ForumTestCase(TestCase):  
    def test_root_page(self):  
        response = self.client.get('/')  
        self.assertEqual(response.status_code, 200)  

    def test_signin_page(self):  
        response = self.client.get("/account/signin/")  
        self.assertEqual(response.status_code, 200)  

我相信我错过了一些非常基础和显而易见的东西,但我就是想不出来是什么。有任何想法吗?

INSTALLED_APPS = (  
    'django.contrib.auth',  
    'django.contrib.contenttypes',  
    'django.contrib.sessions',  
    'django.contrib.sites',  
    'django.contrib.admin',  
    'django.contrib.humanize',  
    'forum',  
    'django_authopenid',  
)  

为什么Django测试运行器找不到我创建的测试?
测试位于forum/tests/:
__init__.py
forum/tests/test_views.py  
forum/tests/test_models.py

我在该目录中也有一个名为__init__.py的文件。

测试用例在哪里?是在/forum/tests/tests.py还是/forum/tests.py? - Daniel Roseman
1个回答

7

如评论中所述,Django 1.6引入了与 在任何测试模块中发现测试 不兼容的变化。

Django 1.6之前,需要执行以下步骤:

在指定目录下创建名为__init__.py的文件。

forum/tests/__init__.py

并从其他模块中导入所有测试。

from test_views import SomeTestCase
from test_models import SomeOtherTestCase

1
谢谢,我没有提到我已经设置好了,已在上面进行了编辑。 - BryanWheelock
1
这在Django 1.6+中不需要,因此可以通过django.VERSION的测试来隐藏它。 - kaleissin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接