跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • LibCoverage, PHP 库的代码全覆盖测试辅助工具
未分類
11 1 月 2021

LibCoverage, PHP 库的代码全覆盖测试辅助工具

LibCoverage, PHP 库的代码全覆盖测试辅助工具

資深大佬 : dvaknheo 0

https://github.com/dvaknheo/libcoverage

https://gitee.com/dvaknheo/libcoverage

解决的问题:写 php 库的时候让 PHP 代码全覆盖测试

使用方法:

composer require --dev dvaknheo/libcoverage ## 安装 composer exec libcoverage          # 查看帮助 composer exec libcoverage setup    # 安装 phpunit                            # phpunit 单元测试 cat test_reports/index.html        # 查看报告,你可以用浏览器打开 # composer exec libcoverage cloze  # 新增了类,添加测试模板运行这个 # phpunit tests/AppTest.php && phpunit tests/support.php # 某类的猜测类变更,重新生成 # composer exec libcoverage report  # 备用生成报告,phpunit 的时候已经就有了。 

作用: 运行完 phpunit 就能开浏览器里打开看到华丽的全覆盖测试的报告了。

看自己写的库有哪些不爽的,挨个做到 100% 覆盖.

我的环境是 wsl, php 7.3,phpunit 9.2.0 // 不是 phpunit 9.3 版哦

LibCoverage 这个项目覆盖是自举 的。 你 clone 下来跑 phpunit 就是。

例如有个项目 src/App.php (带 composer.json 这就不说了。)

<?php namespace MyProject;  class App {     public function foo()     {         var_dump(DATE(DATE_ATOM));     } } 

composer exec libcoverage setup 生成的 AppTest.php

<?php  namespace testsMyProject;  use MyProjectApp;  use LibCoverageLibCoverage;  class AppTest extends PHPUnitFrameworkTestCase {     public function testAll()     {         LibCoverage::Begin(App::class);                  /* //         App::G()->foo();         //*/                  LibCoverage::End();     } }  

你会看到的报告是 0% .

把中间注释部分打开,再跑 phpunit 就是 100% 了。

大佬有話說 (1)

  • 主 資深大佬 : dvaknheo

    刚更新版本 。1.0.3 刚把子类化实现了
    可以这么操作:

    “`
    composer require phpunit/php-code-coverage:8.0.2
    vendor/bin/libcoverage report –override_class=’MyProjectMyLibCoverage’
    “`
    MyProjectMyLibCoverage extends LibCoverage/LibCoverage 这就能替换内部实现了

    例子中的 src/App.php 只是 psr-4 里的一个文件。
    Libcoverage 对所有类的文件都会生成个相应的 Test.php 文件
    这能保证不会遗漏掉应该做覆盖测试的文件

    如果你觉得在同一工程里 测试文件使得 文件太多
    可以新建一个测试工程 require 你的应用工程,如 composer require my/myproject 等
    设置 path_src 指向应用工程的 src 文件。

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具