首页 文章

PHPUnit对通过HTTP调用的代码进行代码覆盖率分析

提问于
浏览
6

我正在尝试找到一种合理的方法来获取通过HTTP在测试中调用的代码的代码覆盖率报告 . 基本上我正在测试我自己的API,因为它应该被调用,但因为PHPUnit / Xdebug不知道在相同的代码库中执行代码 .

基本上我想要实现的是使用PHPUnit Selenium extension已经完成但是我没有运行Selenium,我通过OAuth2客户端调用代码,而OAuth2客户端又使用curl .

是否可以使用触发代码覆盖率报告的GET参数调用我的API,并让PHPUnit读取该报告并将其与其他代码覆盖率合并?有没有一个项目已经做到了或者我是否必须编写自己的PHPUnit扩展?

1 回答

  • 0

    OP表示问题是基于Xdebug的代码覆盖率集合不会/无法收集覆盖数据,因为在执行代码的所有(PHP)进程中未启用Xdebug .

    似乎只有两种方法可以解决这个问题 .

    1)找到一种在调用的所有进程中启用Xdebug的方法 . 我不知道如何做到这一点,但我希望PHP解释器有一些配置参数可以解决这个问题 . 我也不能说是否可以将基于Xdebug的单独报道报告合并为一个 . 其中一个表面,原始覆盖数据抽象地只是一组“这个位置被执行”的信号,因此合并应该只是一个集合 . 如何收集和编码这些集合可能会使这更成问题 .

    2)找到一个不涉及Xdebug的覆盖解决方案,因此Xdebug是否启用是无关紧要的 . 我的公司(参见bio)PHP测试覆盖率工具不使用Xdebug,因此它可以收集您想要的测试覆盖率数据而不会出现问题 . 你可以下载并试一试;这是一个内置的测试覆盖率集合示例,完全由HTTP请求触发 . 该工具具有将单独的测试覆盖运行合并到集成结果中的内置功能 . (我提供了一个直接的链接,但是有些SO人对这个有恶意) .

相关问题