2015-02-09 82 views
0

我是使用coverage.py的新手。我使用coverage run unit_tests.py執行了我的測試。然後我用coverage report其生成以下覆蓋面彙總:從Python中的覆蓋範圍中排除單元測試

Name   Stmts Miss Cover 
-------------------------------- 
cardnames  28  0 100% 
dominion  458 210 54% 
unit_tests  181  0 100% 
-------------------------------- 
TOTAL   667 210 69% 

除了包括cardnames.pydominion.py這我想裏面unit_tests.py測試,覆蓋報告還包括unit_tests.py文件本身。 (在覆蓋計算中)。我如何從報告中排除此文件?

+0

您的項目如何安排?這三個文件都在同一個文件夾中嗎?你有沒有嘗試明確排除測試? – jonrsharpe 2015-02-09 08:40:49

+0

是的所有3個文件都在同一個文件夾中。 (所有3個文件) – 2015-02-09 10:40:08

+1

您可以考慮重新構建項目,以使測試位於單獨的文件夾中。這使得開發,測試和分發變得更容易。見例如http://www.jeffknupp.com/blog/2013/08/16/open-sourcing-a-python-project-the-right-way/ – jonrsharpe 2015-02-09 10:43:27

回答

0

從他們documentation

您可以進一步微調coverage.py的與--include和--omit開關注意力(或[運行]包括與[運行]省略的配置值)。 --include是文件名模式的列表。如果指定,只會測量符合這些模式的文件。 --omit也是文件名模式的列表,指定文件不要測量。

因此,從臀部開始編寫腳本,其語法與coverage run --source=<files to be included> --omit=unit_tests.py unit_tests.py類似。

+0

好的這類作品。我在參數周圍亂了一下以得到一個工作命令: 覆蓋運行--omit unit_tests.py unit_tests.py – 2015-02-09 10:43:17

+0

好極了!我會更新我的答案。 – Tom 2015-02-09 11:13:55