【问题标题】:how to include tests in a distributable django app?如何在可分发的 django 应用程序中包含测试?
【发布时间】:2017-01-15 20:02:12
【问题描述】:

我分发了一个我想为其编写测试的小型 django 应用程序。它使用了一些设置,我正在导入

from django.conf import settings

在应用程序文件中,但这给我留下了一个问题,因为独立应用程序没有 django 项目,那么如何编写和运行测试呢?

【问题讨论】:

  • 你能详细解释一下这个问题吗?
  • 您还想了解什么?我在问我是否需要在我的可再发行应用程序中包含一个默认的 django 项目,人们将使用pip install myapp 安装该项目

标签: python django


【解决方案1】:

在您的应用文件夹中,创建一个名为 tests 的文件夹,然后在该文件夹中放置您的测试(在单个 .py 文件或多个文件中。

你最终会得到这样的文件夹结构:

my_app/
    tests/
        test_views.py
        test_other_stuff.py

然后您将能够使用以下方法为该应用运行测试套件:

`./manage.py test my_app`

my_app 是您应用的名称。至于如何自己编写测试,the Django docs 很有帮助。

【讨论】:

  • 你没有抓住重点。我没有 django 项目,因为这是我分发的独立应用程序。当我只需要一个设置时,我真的需要在我的应用程序中包含整个 django 项目外壳吗?
  • 我不确定我们对“项目”和“应用程序”的理解是否相同。你分发的是什么?一个文件?应用程序文件夹?无论哪种方式,您仍然可以包含测试文件或测试文件夹。看看类似的应用程序,我相信你会看到同样的事情。例如,我使用的一款应用是django-allauthgithub.com/pennersr/django-allauth/tree/master/allauth。注意tests.py
  • 我正在分发一个应用文件夹。 1. 我是否需要包含整个 django 项目才能与此应用程序文件夹一起使用。 2. 如果没有,我如何访问设置或至少以某种方式模拟它,这样我的应用程序中就不需要整个 django 项目?
【解决方案2】:

我的解决方案是创建一个django项目,名字为app,然后把所有的分发文件如

setup.py
MANIFEST.in

在项目级目录中,然后在 MANIFEST.in 文件中仅指明我想要包含在分发中的文件。

MAINFEST.in:

include myapp/*

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-11
    • 1970-01-01
    • 2013-02-12
    • 2023-04-09
    • 2014-12-18
    • 2017-08-03
    • 2016-05-23
    • 2014-05-27
    相关资源
    最近更新 更多