我的一个Python项目的代码库包含许多测试。这些测试足够广泛和宽敞,我称之为“稳健”。我想知道它们到底有多强大,所以我设置了 coverage.py
工具,以及一个 codecov.io 帐户。
该项目有两种类型的测试:
一套单元测试,从一开始就用pytest
运行 - 即没有基于传统的测试,并且夹具和钩子被大量利用。unittest
pytest
每个模块的内联测试功能套件,使用简单的定制测试运行程序编写。这些看起来都是这样的:
# -*- coding: utf-8 -*-
import sys # …etc
# «module code»
def test():
from clu.testing.utils import inline
@inline.precheck
def show_some_initial_values():
""" Precheck function description """
# «pre-check code»
@inline
def test_one():
""" Test one’s description """
# «test code»
@inline
def test_two():
""" Test two’s description """
# «test code»
@inline.diagnostic
def show_some_final_values():
""" Diagnostic function description """
# «post-run diagnostic code»
return inline.test(100) # runs test functions 100 times;
# prechecks and diagnostics run once
if __name__ == '__main__':
sys.exit(test())
...他们输出报告,如下所示:
...内联测试可以基于每个模块运行,直接从编辑器中运行。它们还可以通过 nox
设置全部运行,该设置收集并运行定义内联测试的所有模块。
所以现在,关于和 codecov.io - 将套件与这些工具集成非常容易。我对一个现成的文件做了一些调整,安装了 codecov.io 插件,那就是 - 这些测试报告它们的覆盖范围 codecov.io 很好。coverage.py
pytest
.coveragerc
pytest
我的问题是,如何集成内联测试的覆盖率报告?
有没有一种简单的方法来配置以“理解”这些测试功能,或者内联测试是否需要将其结果报告给覆盖工具?coverage.py
是否可以在文件中设置类似的东西,或者它是否更复杂?.coveragerc
而且,我应该考虑任何其他工具,无论是额外的还是代替我当前使用的工具?
慕标琳琳
相关分类