2014-11-25 42 views
0

我使用py.testcoverage一起生成覆蓋率信息,以便我可以看到我的代碼中有多少我寫過unittests。蟒蛇unittesting - 如何獲得更明確的覆蓋率信息

coverage run --source=package_directory/sources -m py.test package_directory/tests 
coverage report -m --include=package_directory 
coverage html --include=package_directory 

覆蓋範圍產生很好的和精細和實際工作,我倒是希望它做的事(當我做出一個新的單元測試,以測試特定的功能和運行之前提到的命令,該功能由「失蹤」去按照應該「運行」)。不過,事實上,我還沒有觸及到腳本中的報道,這讓我覺得我的單元測試並非完全孤立,而是某處正在蔓延到其他功能中。我想使用coverage來查看發生了什麼。

所以,基本問題歸結爲: 如果覆蓋率報告中的語句(函數)被標記爲「運行」,是否有方法可以從運行(調用)的位置看到?

回答

0

還沒有一種方法可以將覆蓋的行追溯回執行它們的測試。請記住,簡單地導入模塊將執行模塊中的頂級語句(通常爲defclass定義)。

+0

那麼,這種類型的功能在作品中? 它甚至有可能嗎?考慮到python如何在拋出異常時追蹤所有的函數? 除了我以外,還能讓任何人受益嗎? – Reinis 2014-11-26 11:39:54

+0

這是一個常見的要求。很多人都想要它。挑戰是雙重的:收集所有的數據(現在爲每一行,而不是運行/不運行,我們需要存儲一個測試名稱列表),然後,如何呈現這些信息? – 2014-11-26 12:29:24