Skip to main content
 首页 » 编程设计

python之我对运行 Django 测试有点困惑

2025年05月04日37TianFang

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

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

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

By default, this will run every test in every application in INSTALLED_APPS. If you only want to run tests for a particular application, add the application name to the command line.

For example, if your INSTALLED_APPS contains 'myproject.polls' and 'myproject.animals', you can run the myproject.animals unit tests alone with this command:

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

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

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

或者,我是否必须:

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

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

此外,一般来说,这对我的 Django 项目来说是更好的结构吗?

请您参考如下方法:

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

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

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

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

HTH