Python 具有覆盖率的 nosetests 不再显示缺失的行
Python nosetests with coverage no longer shows missing lines
一年多以来,我一直在使用以下命令 运行 测试和评估 Python 项目的代码覆盖率。
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 中的某些内容,或两者都有?
在 coverage.py 4.1 中,我解决了 coverage.py API 将两个参数默认为非 None 值的问题。其中之一是 show_missing
.
在您的项目中解决此问题的最佳方法是在您的 .coveragerc 文件中设置 show_missing
:
# .coveragerc
[report]
show_missing = True
无需恢复到 3.7.1
你可以降级到 4.0.0
除了要设置配置文件 show_missing
之外,您还可以使用覆盖率 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()
一年多以来,我一直在使用以下命令 运行 测试和评估 Python 项目的代码覆盖率。
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 中的某些内容,或两者都有?
在 coverage.py 4.1 中,我解决了 coverage.py API 将两个参数默认为非 None 值的问题。其中之一是 show_missing
.
在您的项目中解决此问题的最佳方法是在您的 .coveragerc 文件中设置 show_missing
:
# .coveragerc
[report]
show_missing = True
无需恢复到 3.7.1 你可以降级到 4.0.0
除了要设置配置文件 show_missing
之外,您还可以使用覆盖率 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()