为了账号安全,请及时绑定邮箱和手机立即绑定

将覆盖率和 codecov.io 与 pytest 单元测试和自定义内联测试结合使用

将覆盖率和 codecov.io 与 pytest 单元测试和自定义内联测试结合使用

海绵宝宝撒 2022-09-13 17:36:52
我的一个Python项目的代码库包含许多测试。这些测试足够广泛和宽敞,我称之为“稳健”。我想知道它们到底有多强大,所以我设置了 coverage.py 工具,以及一个 codecov.io 帐户。该项目有两种类型的测试:一套单元测试,从一开始就用pytest运行 - 即没有基于传统的测试,并且夹具和钩子被大量利用。unittestpytest每个模块的内联测试功能套件,使用简单的定制测试运行程序编写。这些看起来都是这样的:# -*- 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 onceif __name__ == '__main__':    sys.exit(test())...他们输出报告,如下所示:...内联测试可以基于每个模块运行,直接从编辑器中运行。它们还可以通过 nox 设置全部运行,该设置收集并运行定义内联测试的所有模块。所以现在,关于和 codecov.io - 将套件与这些工具集成非常容易。我对一个现成的文件做了一些调整,安装了 codecov.io 插件,那就是 - 这些测试报告它们的覆盖范围 codecov.io 很好。coverage.pypytest.coveragercpytest我的问题是,如何集成内联测试的覆盖率报告?有没有一种简单的方法来配置以“理解”这些测试功能,或者内联测试是否需要将其结果报告给覆盖工具?coverage.py是否可以在文件中设置类似的东西,或者它是否更复杂?.coveragerc而且,我应该考虑任何其他工具,无论是额外的还是代替我当前使用的工具?
查看完整描述

1 回答

?
慕标琳琳

TA贡献1830条经验 获得超9个赞

Coverage.py 对测试一无所知。它所做的只是告诉你代码的哪些部分是由某个程序运行的。通常,该程序是测试运行程序,但 coverage.py 并不在乎。

如果现在使用 运行测试,请将命令更改为 ,您将获得数据。python mytestrunner.pycoverage run mytestrunner.py


查看完整回答
反对 回复 2022-09-13
  • 1 回答
  • 0 关注
  • 72 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信