2

我想将我的 pytest 测试的代码覆盖率百分比值发送到外部系统。Xml 或 Html 报告对我来说不兼容,因为它们包含大量冗余信息。是否可以在某些 pytest 夹具中获取此值以在测试执行后将其发送到外部系统?

4

1 回答 1

1

cov您可以通过夹具访问覆盖实例。但是,IIRC 您需要实际生成报告以获取百分比(或在自定义覆盖率插件中自行计算)。在下面的示例中,我使用了一个会话范围的 autouse 固定装置,因此每次测试运行都会自动调用一次,并将报告写入一次性文件对象:

import io
import pytest


@pytest.fixture(scope="session", autouse=True)
def upload_coverage(cov):
    yield
    cov.save()
    percentage = cov.report(file=io.StringIO())
    # percentage is a float which you can upload now
于 2021-04-16T22:36:19.103 回答