繁体   English   中英

将非应用程序测试添加到在执行python manage.py test时运行的测试中

[英]Add non app tests to tests that run when executing python manage.py test

我的Django项目有几个应用程序,每个应用程序都有各自的测试。 它还具有一个utils软件包,该软件包具有自己的测试。

软件包utils位于与manage.py相同级别的文件夹中,而其测试则位于名为test_xxx.py的文件中名为tests的子文件夹中。

当我运行python manage.py test Django会为项目中的所有应用程序运行所有测试,但不会为utils包运行测试。 我可以通过运行python manage.py test utils来运行utils包的python manage.py test utils

我想做的是,当我运行python manage.py test时,也将运行对utils的python manage.py test以便单个命令测试项目的整个套件。 我无法在文档中找到任何内容,也无法搜索google或此处的操作方法。 有任何想法吗?

谢谢你的帮助!!

- - 额外细节 - -

目录结构

├── project
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
├── manage.py
├── ...
├── app1
│   ├── __init__.py
│   ├── urls.py
│   ├── views.py
│   ├── ...
│   └── tests
│        ├── test_views.py
│        └── test_models.py
├── app2
│   ├── __init__.py
│   ├── urls.py
│   ├── views.py
│   ├── ...
│   └── tests
│        ├── test_views.py
│        └── test_models.py
└── utils
    ├── __init__.py
    ├── code.py
    └── tests
         └── test_utils.py

执行测试的命令

python manage.py test

...执行...

nosetests --with-coverage --cover-package=app1,app2, utils --cover-html --cover-erase --logging-filter='selenium' --verbosity=1

覆盖率报告显示,针对app1和app2的所有测试均已执行,但未针对utils的测试

Django使用DiscoverRunner运行您的测试工具。 如您所见: https : //docs.djangoproject.com/zh-CN/2.1/topics/testing/advanced/#defining-a-test-runner

第一种选择是:

top_level可用于指定包含顶级Python模块的目录。 通常Django可以自动解决此问题,因此无需指定此选项。 如果指定,则通常应该是包含manage.py文件的目录。

因此,您的测试应由测试工具运行,因为它们位于manage.py的同一文件夹中。 您是否在测试文件夹中添加了__init__.py

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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