PHPUnit 中的 PHP 函数代码覆盖率

phpunit 中的 php 函数代码覆盖率可以通过以下步骤实现:安装 phpunit:在项目中安装 phpunit。集成 phpunit:更新 composer.json 文件加入 psr-4 自动加载。创建测试类:在 tests/ 目录下创建测试类,包含要测试的函数。启用代码覆盖率:在 phpunit.xml 文件中添加配置,生成覆盖率报告。执行代码覆盖率测试:运行 phpunit 命令,生成 html 覆盖率报告。

PHPUnit 中的 PHP 函数代码覆盖率

简介
代码覆盖率是衡量测试覆盖代码库中多少代码行的度量。在 PHP 中,使用 PHPUnit 可以轻松实现 PHP 函数的代码覆盖率。

安装 PHPUnit
在项目中安装 PHPUnit:

立即学习“PHP免费学习笔记(深入)”;

1

composer require --dev phpunit/phpunit

集成 PHPUnit
更新 composer.json 文件:

1

2

3

4

5

6

7

{

  "autoload": {

    "psr-4": {

      "Tests\\": "tests/"

    }

  }

}

创建测试类
在 tests/ 目录下创建测试类:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

<?php

use PHPUnit\Framework\TestCase;

class FunctionCoverageTest extends TestCase

{

    public function testAdd()

    {

        // ...

    }

    public function testSubtract()

    {

        // ...

    }

}

启用代码覆盖率
要生成代码覆盖率报告,请在 phpunit.xml 文件中添加以下代码:

1

2

3

4

5

<configuration>

  <logging>

    <log type="coverage-html" target="build/coverage"/>

  </logging>

</configuration>

执行代码覆盖率测试
运行以下命令生成代码覆盖率报告:

1

vendor/bin/phpunit --coverage-html=build/coverage

实战案例
以下是一个示例函数和相应的单元测试:

函数

1

2

3

4

function add(int $a, int $b): int

{

  return $a + $b;

}

单元测试

1

2

3

4

5

6

7

8

9

10

use PHPUnit\Framework\TestCase;

class FunctionCoverageTest extends TestCase

{

  public function testAdd()

  {

    $this->assertEquals(5, add(2, 3));

    $this->assertEquals(4, add(-1, 5));

  }

}

登录后复制

运行 PHPUnit 后,会在 build/coverage/index.html 中生成一个 HTML 代码覆盖率报告。

相关文章