![](/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.