2011-09-23 50 views
1

我有一個簡單的django項目,其中包含一些applications.Everything運作良好。現在我如何檢查我的項目的代碼覆蓋率。我已經安裝coverge-3.5工具,並試圖通過從終端鍵入「覆蓋報告」 ..它顯示像如何知道django應用程序的覆蓋範圍?

名稱----->(某些文件在我的項目)

STMS一些結果----->(一些數)

MISS ----- >(某些數字)

COVER ----->(某些%)

在我的情況下,它會顯示一些結果,只顯示我的項目中的一些文件名。它沒有顯示來自我的項目的所有文件的覆蓋率。如何使它顯示我的所有文件名?

如果您知道,請提出任何更好的工作覆蓋工具!

回答

4

首先確保您使用的是最新的覆蓋版本。比你可以這樣做: 假設你的Django項目都生活在project_parent /項目,從project_parent運行:

coverage html --include=project/*.* 

這會給你只是你的項目的覆蓋報告(即不輸出第三方的lib報道)

+0

感謝您的回覆。使用覆蓋範圍3.5。如果我從相應路徑運行覆蓋範圍html --include = myproject /*.*,則返回「無數據報告」! – mani

+0

嘗試使用路徑(它在我使用它的項目中以這種方式工作),但我記得如何使用--include路徑沒有很好的記錄。 – ashwoods

+0

它不適用於我..BUt我用「覆蓋運行manage.py測試」來運行我所有的proj測試用例,然後我將使用「覆蓋報告」來查找覆蓋報告。它運行良好。但它輸出第三方lib的覆蓋率..Dono如何顯示我的項目測試單獨的報道! – mani

6

我剛剛得到它的工作是這樣的:

coverage run --source=app1,app2 ./manage.py test --settings=path.to.test_settings app1,app2 

我不認爲這是預期的方式做到這一點,因爲我們不使用./manage.py test_coverage命令所有,但我找不到任何其他方式。

+0

我也是這樣工作的:'coverage run --include = usermanager/*,witness/* --omit = .env/*,*/migrations/*,*/__ init __。py,*/tests.py, */models.py,manage.py ./manage.py test usermanager witness --settings = digichainOpen.settings' – williezh

2

我設法解決這一問題django_coverage和django_nose

我加入INSTALLED_APPS 'django_coverage' 和settings.py

TEST_RUNNER = 'django_nose.NoseTestSuiteRunner' 

# Tell nose to measure coverage on the 'foo' and 'bar' apps 
NOSE_ARGS = [ 
    '--with-coverage', 
    '--cover-package=schedule', 
] 

'django_nose'

與此安裝它

pip i nstall django_coverage

我該如何使用它?

安裝的Django應用程序將整個:在您的第三方

django_coverage應用apps目錄。

更新您的settings.INSTALLED_APPS以包含django_coverage。

在您自己的設置文件中包含測試覆蓋特定設置。

有關更多詳細信息,請參閱settings.py。完成所有步驟後,您將通過manage.py test_coverage獲得新的自定義命令。

它的工作方式與manage.py測試類似。

使用它作爲一個測試運行

您不必安裝django_coverage作爲一個應用程序,如果你不想。如果您願意,您可以簡單地使用測試跑步者 。 更新settings.TEST_RUNNER ='django_coverage.coverage_runner.CoverageRunner'在您自己的設置文件中包含測試範圍 特定設置。有關更多 的詳細信息,請參閱settings.py。像平常一樣運行manage.py測試。