2

我有应该从生成的报告中排除的功能,显示为缺失。现在我得到:

报告截图

什么都没有。它正在读取支持功能,并对其进行报告。

例如:

def is_element_present(self, how, what): 
        try: self.driver.find_element(by=how, value=what)
        except NoSuchElementException, e: return False 
        return True 

在上面给出的示例中,--cov 将该行读取except NoSuchElementException, e: return False为缺失。而且,我意识到这是一个覆盖率报告工具,但它不应该显示任何失败的测试吗?修辞,是的,它应该。但是,我该如何证明这一点。我已经阅读了文件,但找不到。

4

1 回答 1

4

由于 pytest-cov 插件可以获取.coveragerc配置,并推荐pytest-cov

为了进一步控制覆盖,请使用覆盖配置文件。

如果没有,请创建这样的文件,并在其中:

[run]
exclude_lines =

    raise NoSuchElementException

并且做py.test --cov-config .coveragerc [other parameters]。请参阅http://nedbatchelder.com/code/coverage/config.html了解更多选项。--cov-config请注意,如果覆盖配置确实是名称(它是and.coveragerc的默认值),您并没有真正明确添加coverage.pypytest-cov

我用以下代码测试了这个解决方案:

main.py

def main():
    try:
        print 1 / 0
    except:
        raise Exception('test')

test_main.py

import unittest
import main

def test_main():
    main.main()


if __name__ == '__main__':
    testcase = unittest.FunctionTestCase(test_main)
    unittest.main()

并执行py.test --cov main.py,这给了我:

名称 Stmts Miss Cover

主要 5 0 100%

于 2013-07-18T14:33:53.680 回答