我对运行django测试有点困惑

时间:2013-11-14 23:38:45

标签: python django django-unittest

所以我按照网站上的说明进行操作:

https://docs.djangoproject.com/en/1.5/topics/testing/overview/

但令我困惑的是描述运行时测试范围的部分。它说:

  

默认情况下,这将在INSTALLED_APPS中的每个应用程序中运行每个测试。如果您只想为特定应用程序运行测试,请将应用程序名称添加到命令行。

     

例如,如果您的INSTALLED_APPS包含“myproject.polls”和“myproject.animals”,则可以使用此命令单独运行myproject.animals单元测试:

让我感到困惑的是,网站的目录结构是这样布局的

myproject/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        views.py
        models.py
        wsgi.py

所以我真的没有任何小应用程序。我基本上只有一个大应用程序,这是该网站。我的INSTALLED_APPS变量中有很多应用程序,但我只想在mysite上运行测试。我该怎么做呢?

或者,我是否必须:

将整个站点移动到自己的应用程序,布置如下目录结构并将该应用程序添加到INSTALLED_APPS

myproject/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        wsgi.py

    mysiteapp/
        views.py
        models.py

另外,一般来说这对我的django项目来说是一个更好的结构吗?

1 个答案:

答案 0 :(得分:1)

Django测试套件基本上会按原样测试你的一个大网站,我相信这就是你想要的。

其他人将他们的Django网站构建为较小的应用程序的集合。就像一个用于身份验证的子应用程序,或者一个用于具有不同要求的特定功能,或者只是将一堆组件连接在一起,以便您可以重用过去项目的一部分。

在这些情况下,某人可能只想测试其中一个组件而不是整个组件。例如,如果您有一个工作站点,并且您从过去的项目添加了应用程序并且一切都中断了,那么您可能希望将测试集中在该应用程序上。这就是警告的内容。这意味着如果您只想测试子应用程序,那么您应该指定它。

对于您的情况,测试一切正常,因为您只使用一个应用程序。

HTH