PhpStorm 2021.3 Help

代码覆盖率

PhpStorm 中的代码覆盖率允许您以低运行时开销对代码执行动态的线路覆盖率测量。一般来说,行覆盖率回答了“这行代码是在单元测试模拟期间执行的吗?”这个问题。

测量代码覆盖率可用于PHPUnit 测试Mocha 测试Karma 测试

代码覆盖率结果显示在Coverage工具窗口、Project 工具窗口的Project视图和编辑器中。工具窗口显示以下信息:

  • 对于目录:覆盖的类和行的百分比。

  • 对于文件:覆盖行的百分比。

在编辑器中打开文件时,每一行都会突出显示其代码覆盖率状态:

  • 在模拟期间执行的行标记为绿色。

  • 模拟期间未执行的行标记为红色。

覆盖测量结果包括一个覆盖套件。您可以将新模拟的结果与任何现有套件合并。在这种情况下,如果一条线被至少一个模拟覆盖,则该线将被视为已覆盖。

每次执行具有代码覆盖率测量的测试或应用程序时,都会生成一个覆盖率套件。可以拥有无​​限数量的覆盖套件。

以代码覆盖率运行

在项目中使用代码覆盖率的一般步骤

  1. 配置代码覆盖率运行器。在 PhpStorm 中,您可以使用以下任何代码覆盖率运行器:

    • Xdebug,一个提供调试和代码覆盖能力的调试扩展。

      要启用 Xdebug,请确保在活动php.ini文件的[xdebug]部分中至少指定了以下设置。

      [xdebug] zend_extension="<xdebug 扩展的路径>" xdebug.mode=coverage
      [xdebug] zend_extension="<xdebug 扩展的路径>" xdebug.coverage_enable=1

      有关详细信息,请参阅配置 Xdebug

    • PCOV,一个只提供代码覆盖能力的轻量级扩展。

      要启用 PCOV,请按照PCOV 文档中的说明下载并安装扩展。然后,确保在活动的php.ini文件中至少指定了以下设置:

      extension="<pcov 扩展的路径>"
    • phpdbg,一个调试和代码覆盖模块,捆绑在 PHP 5.6 及更高版本中,不需要额外配置。

  2. 指定您希望如何处理覆盖结果

  3. 如果要测量代码覆盖率以进行测试,请为目标代码创建测试。

  4. 在所需的运行/调试配置中配置代码覆盖率测量。

  5. 使用主菜单Run |中的专用命令运行覆盖。Run with Coverage,或单击Run with Coverage按钮Run with Coverage 按钮

    请注意,这将使用Xdebug代码覆盖运行程序运行测试。要使用不同的运行器,您需要创建一个专用的 PHPUnit 运行/调试配置

  6. 执行覆盖运行后,您可以执行以下操作:

最后修改:2021 年 11 月 16 日