如何告诉鼻子和覆盖范围不要在我的virtualenv中包含文件?

时间:2015-10-15 14:03:32

标签: nosetests coverage.py

我试图纠缠鼻子+覆盖范围。如果我有这个代码:

class Foobar(object):
    def add(self, a, b):
        return a + b

这个测试:

from unittest import TestCase
from foobar import Foobar

class FoobarTest(TestCase):
    def test_good(self):
        f = Foobar()
        self.assertEquals(f.add(1,2), 3)

然后一切都很好看!

$ nosetests
.
Name        Stmts   Miss  Cover   Missing
-----------------------------------------
foobar.py       3      0   100%
----------------------------------------------------------------------
Ran 1 test in 0.018s

OK

但是如果我在源代码中添加一行

import requests

class Foobar(object):
    def add(self, a, b):
        return a + b

然后我在报告中得到了很多额外的东西

$ nosetests
.
Name                                                                           Stmts   Miss  Cover   Missing
--------------------------------------------------------------------------------------------------------
foobar.py                                                                      4      0   100%
requests.py                                                                   26      5    81%   54, 72-75
requests/adapters.py                                                         180    134    26%   48, 51, 54, 89-102, 105, 111-117, 1

[snip]

那么我如何配置覆盖范围以说“不要在测量或报告属于我的virtualenv的任何内容 - 只需在我的工作目录下进行操作。”#34;我确定它与.coveragerc有关,但我在调用调配时遇到了一些麻烦。

1 个答案:

答案 0 :(得分:3)

想出来。

1)摆脱任何与覆盖相关的ini文件

2)将此添加到" nose.cfg" 在您的主目录中的鼻子

[nosetests]
with-coverage=1   ; generate a coverage report (in the "cover" directory)
cover-package=.   ; only report on coverage files in the current directory
cover-html=1      ; generate a pretty html report
cover-erase=1     ; re-generate coverage statistics on each run

当然,您必须确保您的测试文件与Nose正在寻找的testMatch模式匹配。