[英]Using coverage and codecov.io with both pytest unit tests and bespoke inline tests
我的一个 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
设置来集体运行。
所以现在,关于coverage.py
和 codecov.io——将pytest
套件与这些工具集成起来非常容易。 我对现成的.coveragerc
文件进行了一些调整,安装了pytest
codecov.io 插件,就是这样——这些测试将它们的覆盖率报告给 codecov.io 就好了。
我的问题是,如何为内联测试集成覆盖率报告?
coverage.py
以“理解”这些测试功能,或者内联测试是否需要将其结果报告给覆盖工具?.coveragerc
文件中设置类似的内容,还是涉及更多?Coverage.py 对测试一无所知。 它所做的只是告诉您代码的哪些部分由某个程序运行。 通常该程序是一个测试运行程序,但coverage.py 不在乎。
如果您现在使用python mytestrunner.py
运行测试,请将命令更改为coverage run mytestrunner.py
,您将获得数据。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.