[英]Django 1.6+ test not Discovering unit tests located in a tests sub-directory
因此,我查看了不少于 10 个与 Django 相关的 Stack Overflow 问题,没有找到单元测试,但每个人都没有解决我的问题。
我正在运行 Django 1.65,并试图让 Django 发现我的测试。
这是我的目录结构
project
__init__.py
my_app
__init__.py
tests
__init__.py
test_template_tags.py
my_app2
__init__.py
tests
__init__.py
test_something_else.py
我在项目目录内的命令行中尝试的命令是: python manage.py test my_app
test_template_tags.py 里面的代码是:
from django.test import TestCase
class MyTestClass(TestCase):
def setUp(self):
pass
def tearDown(self):
pass
def test_something(self):
self.assertTrue(True)
从另一个 SO 的提示中,该命令find my_app -name 'test*.py'
已执行并按预期显示所有测试文件。
当我在项目目录中打开 django shell 并尝试导入测试类时,一切都按预期工作。
from my_app.tests.test_template_tags import MyTestClass
最后,我将测试代码复制并粘贴到 app 目录中的 tests.py 文件中,当然,它有效,但它不是我正在寻找的解决方案。
我在这里还缺少其他一些明显的小东西吗? 我的所有__init__.py
文件都按顺序排列,所有测试文件前面都有test_
,my_app 包含在设置中的INSTALLED_APPLICATIONS
中。
在您的__init__.py
中,您需要import
该目录中的其他测试模块,以便测试运行程序发现它们。 如果您的结构如下所示:
project
__init__.py
my_app
__init__.py
tests
__init__.py
test_template_tags.py
my_app2
__init__.py
tests
__init__.py
test_something_else.py
然后my_app.tests.__init__.py
将包含:
from test_template_tags import *
而my_app2.tests.__init__.py
将包含:
from test_something_else import *
然后您的测试将使用python manage.py test
运行
在此处尝试任何答案之前,请确保您的测试文件按照惯例标记为test*.py
。
游戏迟到了,但是......我的错误是错字:“init .py”而不是测试目录中的init.py。 我不必将任何数据放入init .py
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.