![](/img/trans.png)
[英]How to run all tests with python manage.py test command in django
[英]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.