簡體   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