有没有一种方法可以测试vim插件的覆盖率?

2024-10-01 11:33:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用vimrunner python库来测试我用py-test和pytest-cov编写的vim插件。在

Vimrunner python执行vim服务器并通过服务器远程接口控制客户机vim实例。在

但是,pytest cov(显然)没有看到vim进程执行的行。有没有一种方法可以使其工作,即将覆盖范围指向vim的服务器PID?在


Tags: 实例方法pytest服务器插件客户机远程
1条回答
网友
1楼 · 发布于 2024-10-01 11:33:48

您需要从插件本身运行覆盖率测量,例如:

# Start measuring coverage if in testing
if vim.vars.get('measure_coverage'):
    import os
    import atexit
    import coverage
    coverage_path = os.path.expanduser('~/coverage-data/.coverage.{0}'.format(os.getpid()))
    cov = coverage.coverage(data_file=coverage_path)
    cov.start()

    def save_coverage():
        cov.stop()
        cov.save()

    atexit.register(save_coverage)

如果需要使用覆盖率工具多次调用覆盖率,则需要:

^{pr2}$

这将生成combined.coverage文件,然后可以使用该文件生成所需的报告。在

注意:确保每个vim实例只执行一次度量部分,否则覆盖文件可能会被重写。在这种情况下,应该使用PID之外的另一个唯一性源(即随机数)来生成.coverage文件的名称。在

相关问题 更多 >