2011-12-05 71 views
1

我正在使用python coverage.py創建一個覆蓋範圍非常基本的測試套件。目前一切正常。但是,我的報道報告包括所有被調用的/usr/local/lib庫和所有__init__.py文件。在Python中使用omit標誌coverage.py API

這裏就是我的覆蓋率報告調用看起來像現在:

self.cov.html_report(directory='coverage', omit='*Test*, */usr/local/lib*,*__init__*') 

我們的目標是使用省略標誌用字「測試」刪除所有班「在/ usr/local/lib目錄」,或者「__init__」。由於我無法在API上找到關於此的太多內容(有很多關於如何在命令行上執行的操作),有人知道做這項工作的正確語法是什麼嗎?

回答

2

從文檔在http://nedbatchelder.com/code/coverage/api.html#api

包括和省略是名樣式列表。包含 包括的文件將被測量,匹配omit的文件不會。每個將 也接受單個字符串參數。

所以試着像...

self.cov.html_report(directory='coverage', omit=['*Test*', '/usr/local/lib*', '__init__*']) 
6

嘗試在覆蓋範圍()調用ommiting不需要的文件:

self.cov = coverage.coverage(omit=['*Test*', '*/usr/local/lib*','*__init__*']) 

我會使用推薦的覆蓋範圍配置文件(默認爲。 coveragerc):

# .coveragerc to control coverage.py 

[run] 
omit = 
     *__init__* 
     */usr/local/lib* 
     *Test* 

[html] 
omit = 
     *__init__* 
     */usr/local/lib* 
     *Test* 

覆蓋率調用採取。 coveragerc文件考慮到默認,但如果要確保使用:

self.cov = coverage.coverage(config_file=True) 

或者,您可以更改配置文件名稱,並將其作爲參數傳遞:

self.cov = coverage.coverage(config_file='/your/path/.coverage_config_file') 

希望這有助於。

+0

顯然現在html塊只允許專門針對HTML報告輸出的選項。爲了省略報告中的某些文件,必須在'[report]'塊中定義'omit'選項。請參閱http://coverage.readthedocs.io/en/coverage-4.0.3/config.html – martinarroyo