繁体   English   中英

Django 1.6+ 测试未发现位于测试子目录中的单元测试

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM