2016-06-09 32 views
18

我一直在使用以下命令來運行一年多的Python項目的測試和評估代碼覆蓋。帶覆蓋的Python nosetests不再顯示缺失的行

nosetests -v --with-coverage --cover-package=genhub genhub/*.py 

覆蓋率報告用於在最右側包括一列顯示缺少覆蓋率的行。

Name     Stmts Miss Branch BrPart Cover Missing 
---------------------------------------------------------------- 
genhub/cdhit.py   50  0  8  0 100% 
genhub/exons.py   85  69  8  0 17% 24-40, 48-56, 60-79, 87-107, 129-132, 138-141, 147-150 
genhub/fasta.py   76  0  26  0 100% 
genhub/genomedb.py  205 153  48  0 21% 40-43, 53-60, 64-65, 70, 74, 82, 86, 90, 98-99, 103-104, 108-109, 113-114, 118-119, 123-124, 128-129, 143-144, 152-154, 158-160, 164-166, 175, 180, 240-280, 289, 292, 295, 308-317, 323-330, 351-377, 380-386, 396-413, 419-430, 436-443, 449-456 
genhub/iloci.py  112  91  8  0 18% 30-46, 54-64, 73-90, 102-118, 127-142, 165-173, 179-183, 189-193, 199-207, 213-225 
genhub/mrnas.py  121 108  24  0  9% 30-63, 79-105, 118-158, 178-197, 203-226 
genhub/pdom.py   95  68  24  0 23% 31-32, 35, 39, 43, 47, 50-53, 56-59, 62-64, 67-72, 75-106, 116-119, 126-128, 134-141, 148-156 
genhub/proteins.py  20  13  2  0 32% 43-53, 94-97 
genhub/refseq.py  237 195  44  0 15% 30-46, 49, 53, 57, 61, 65, 69, 73, 76-86, 89-115, 118-127, 130-178, 189-211, 217-226, 232-242, 248-265, 271-288, 294-297, 303-310, 317-326, 333-374, 380-387 
genhub/registry.py  126  90  32  2 24% 48-56, 59-64, 67-69, 72-77, 81-83, 92-94, 103-109, 112-113, 116-117, 142-168, 174-188, 194-201, 207-216, 40->44, 44->48 
genhub/stats.py   3  0  0  0 100% 
genhub/tair.py   128  97  22  0 21% 32-42, 45, 49, 53, 57, 61, 65, 69, 73, 76-79, 82-104, 110-119, 122-154, 165-180, 186-189, 195-203, 210-221 
---------------------------------------------------------------- 
TOTAL     1258 884 246  2 27% 
---------------------------------------------------------------------- 
Ran 46 tests in 0.033s 

FAILED (errors=41) 

然而,Missing欄不再顯示爲我(鼻子版本1.3.7,coverage.py版本4.1)。

我知道鼻子不再被支持。這個變化是與此相關的,還是coverage.py中的某個或兩者?

+0

見**注意**這裏:https://nose.readthedocs.io/en/latest/plugins/cover.html。以前使用的「工作」版本是什麼? –

+0

@busfault我知道它正在與coverage.py 4.0.3。 –

+0

我有同樣的問題。我有'覆蓋率== 3.7.1'和'鼻子== 1.3.7'和行號顯示。 '覆蓋率== 4.1'刪除了它們。是時候讓我恢復。請在他們的回購中提出問題https://bitbucket.org/ned/coveragepy/issues/new – KFunk

回答

31

在coverage.py 4.1中,我修復了coverage.py API將兩個參數默認爲非無值的問題。其中之一是show_missing

在項目中解決這個問題的最好辦法是設置show_missing在.coveragerc文件:

# .coveragerc 
[report] 
show_missing = True 
+1

有沒有一種方便的方式在nose命令中設置show_missing,而不需要.coveragerc? – Tasha

1

無需恢復到3.7.1 您可以直接降級到4.0.0

2

除了擁有配置文件來設置show_missing之外,您還可以使用coverage set_option來定義它。

cov.set_option('report:show_missing', True) 

我有得到正確的覆蓋models.py問題,我根據this解決它。

然後我只是添加上面的行來顯示缺少的行。所以我manage.py有一部分像這樣的:

if is_testing: 
    import coverage 
    cov = coverage.coverage(source=['blog'], omit=['*/tests/*']) 
    cov.set_option('report:show_missing', True) #add this 
    cov.erase() 
    cov.start()