我的Django项目有几个应用程序,每个应用程序都有各自的测试。它还有一个utils
程序包,它具有自己的测试。
软件包utils
位于与manage.py处于同一级别的文件夹中,其测试位于名为test_xxx.py的文件的名为test的子文件夹中
当我运行python manage.py test
时,Django会为项目中的所有应用程序运行所有测试,但不会运行utils
包的测试。我可以通过运行utils
来运行python manage.py test utils
软件包的测试。
我想做的是,当我运行python manage.py test
时也要运行对utils的测试,以便单个命令可以测试项目的整个套件。我无法在文档中找到任何内容,也无法搜索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的测试未执行
答案 0 :(得分:0)
Django使用DiscoverRunner
运行测试工具。如您在这里看到的:https://docs.djangoproject.com/en/2.1/topics/testing/advanced/#defining-a-test-runner
第一个选项是:
top_level可用于指定包含您的目录的目录 顶级Python模块。通常Django可以弄清楚 自动,因此无需指定此选项。如果 指定,通常应该是包含您的 manage.py文件。
因此,您的测试应由测试工具运行,因为它们位于manage.py
的同一文件夹中。您是否在测试文件夹中添加了__init__.py
?