2016-06-09 14 views
18

Ich habe den folgenden Befehl verwendet, um Tests durchzuführen und die Codeabdeckung für ein Python-Projekt seit über einem Jahr zu evaluieren.Python-Nasentests mit Coverage zeigen keine fehlenden Zeilen mehr

Der Berichterstattungsbericht enthält eine Spalte ganz rechts, die die fehlende Deckung der Linien anzeigt.

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) 

jedoch die Missing Spalte zeigt nicht mehr für mich (Nase Version 1.3.7, coverage.py Version 4.1).

Ich bin mir bewusst, Nase wird nicht mehr unterstützt. Ist diese Änderung damit oder etwas in coverage.py oder beides verbunden?

+0

Siehe ** Hinweis ** hier: https://nose.readthedocs.io/en/latest/plugins/cover.html. Was war die vorherige "funktionierende" Version, die du benutzt hast? –

+0

@busfault Ich weiß, dass es mit coverage.py 4.0.3 funktionierte. –

+0

Ich habe das gleiche Problem. Ich hatte 'coverage == 3.7.1' und' nose == 1.3.7' und die Zeilennummern wurden angezeigt. 'coverage == 4.1' hat sie entfernt. Zeit für mich, zurückzukehren. Bitte machen Sie ein Problem in ihrem Repo https://bitbucket.org/ned/coveragepy/issues/new – KFunk

Antwort

31

In Coverage.py 4.1 habe ich ein Problem behoben, bei dem die API "coverage.py" zwei Parameter auf Nicht-None-Werte voreinstellte. Einer von ihnen war show_missing.

Der beste Weg, dies in Ihrem Projekt zu beheben, ist show_missing in Ihrer .coveragerc Datei zu setzen:

# .coveragerc 
[report] 
show_missing = True 
+1

Gibt es eine bequeme Möglichkeit, show_missing im nose-Befehl einzustellen, anstatt einen .coveragerc zu benötigen? – Tasha

1

Keine Notwendigkeit, wieder zurück zu 3.7.1 Sie können herabzustufen 4.0.0 nur

2

Neben den Konfigurationsdateien show_missing können Sie auch die Abdeckung set_option definieren.

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

Ich habe Problem mit der richtigen Abdeckung für models.py bekommen, löse ich es nach this.

Dann füge ich einfach die obigen Zeilen hinzu, um fehlende Zeile anzuzeigen. Also meine manage.py haben einen Teil wie folgt aus:

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()