资讯专栏INFORMATION COLUMN

如何愉快的在PhpStorm中进行PHPUnit单元测试和Xdebug断点调试?

Flink_China / 2369人阅读

摘要:配置执行程序点击那个同步的小图标,如果看到就说明配置有效指定模块配置选择,搜索,左侧选择,点击新增一个。

前言

如果你想做个接口测试,但并不想公开内部接口

如果你只是想对自己封装的某块代码做个小测试

如果你想要编写代码边调试,又不想操作 Postman 或前端的功能来调用 API

本文暂时仅介绍在 LaravelComoposer Library 项目中如何配置 PHPUnit

参考文档
如何愉快的在PhpStorm中进行PHPUnit单元测试和Xdebug断点调试?https://segmentfault.com/a/11...
如何愉快的在PhpStorm中进行PHPUnit单元测试和Xdebug断点调试?https://blog.csdn.net/RobotYa...
——
PHPUnit 手册:http://www.phpunit.cn/manual/...
phpunit assert断言分类整理 :https://www.cnblogs.com/nings...
安装 Xdebug

请参考以下文章的 PHP 安装 Xdebug 章节

如何愉快的在PhpStorm中进行Xdebug断点调试:https://segmentfault.com/a/11...
如何愉快的在PhpStorm中进行Xdebug断点调试:https://blog.csdn.net/RobotYa...

配置 配置 PhpStorm 的 PHP CLi

选择 File -> Setting

搜索 CLI ,左侧选择 PHP,点击 + 新增一个 PHP 解释器。

Windows

配置 php 执行程序

点击那个 同步的小图标,如果看到 successfully 就说明配置有效

指定 Xdebug 模块

Ubuntu

配置 PHPUnit

选择 File -> Setting,搜索 test ,左侧选择 Test Framework,点击 + 新增一个 PHPUnit Local

Composer Library 项目

选择第一项:使用 composer autoloader 导入配置

选择你项目下的 vendor/autoload.php

点击那个 同步的小图标,如果看到 successfully 就说明配置有效

    ![配置 composer autoloader](https://img-blog.csdn.net/20180908214108744?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1JvYm90WWFuZzEyMw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
- Laravel 项目
    - 选择第一项:使用 `composer autoloader` 导入配置
    - 选择你项目下的 `bootstrap/autoload.php`(或者选项目下的 `vendor/autoload.php`)
    - 点击那个 `同步的小图标`,如果看到 `successfully` 就说明配置有效
    ![配置 composer autoloader](https://img-blog.csdn.net/20180908233525792?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1JvYm90WWFuZzEyMw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
配置 phpunit.xml

在你的项目根目录下新建 phpunit.xml 文件(但奇怪的是我在 PhpStorm 删除这个文件,也可以执行单元测试,猜测可能是 phpunit.xml 配置文件是可选的)





    
    
        ./tests
    

    
    
        
            ./src
        
    

当然这个 phpunit.xml 只是基本配置,还有其他高级配置请自行百度

新增测试例

在你的项目根目录下新建 tests 目录

tests 目录下新建 phpunit 测试类,以 Test.php 为后缀

编写测试例方法,以 test 开头

requestApi(); //请求api 或 调用 service 后返回的结果
        $this->assertEquals($expect, $result); //使用断言方法 比较结果值
    }

    //假装请求数据
    private function requestApi()
    {
        echo $date_1 = date("Y-m-d H:i:s");
        echo "
";; echo $date_2 = date("Y-m-d H:i:s"); echo "
";; echo $date_3 = date("Y-m-d H:i:s"); echo "
";; echo $date_4 = date("Y-m-d H:i:s"); echo "
";; echo $date_5 = date("Y-m-d H:i:s"); echo "
";; $j = 0; for ($i = 0; $i < 10; $i++) { $j = $i * 2; $i = $i + 2; echo $i; echo "
"; echo $j; echo "
"; } return "hello world"; } }

打上断点,然后在要测试的方法名上右键,选择 Debug 这个方法

第一次可能会弹出让你选择测试范围的配置界面,这里我们只测试指定方法,所以选择了 Method

测试结果

测试例执行 Xdebug 的流程

测试例执行成功的返回信息

调试快捷键

F7 通过当前行,进入下一行,如果该行是方法,则进入方法体

F8 通过当前行,进入下一行,如果该行是方法,也直接进入下一行,不进入方法体

F9 通过整个流程,全部顺序执行,除非遇到下一个断点

要点总结

配置 PHP CLIphp.exexdebug.dll

配置 PHPUnitautoload.php

配置 phpunit.xml (可选)

新增 测试例(测试类 和 测试方法)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/29403.html

相关文章

  • 推荐代码调试工具 Xdebug

    摘要:写代码总绕不过需要调试,除了外,我们还是需要借助进行调试。这里的使用,是分别整合到和下。安装还是基于神级武器。至于下一步如何更好的使用,就看各自的实际项目和开发需要了。 写代码总绕不过需要调试,除了 UnitTest 外,我们还是需要借助 Xdebug 进行调试。 所以今天来说说如何基于本地 Docker 环境下,使用 Xdebug。 这里的使用,是分别整合到 VS Code 和 PH...

    MartinHan 评论0 收藏0
  • XDEBUG 从入门到精通

    摘要:默认关闭如果该设置为,那么将禁用关闭操作符,以便不再隐藏通知警告和错误。将写入垃圾收集统计信息输出的目录,确保将运行的用户具有对该目录的写入权限。此设置确定用于将垃圾回收统计信息转储到的文件的名称。 showImg(https://segmentfault.com/img/bVbgEC5?w=480&h=274); 前言 Xdebug是PHP的扩展,用于协助调试和开发。 它包含一个用...

    leejan97 评论0 收藏0
  • PHPStorm-Xdebug-Laravel 快速上手

    摘要:是调试的组件是调试利器,在日常开发中排错时其断点调试功能非常有帮助使得我们开发者不用依赖于传统的比较的调试。并且还有一个好处通过我们还可以查看代码运行的逻辑,比如要研究的源码那么这时使用,将会达到事半功倍的效果。 Introduction xdebug是php调试的组件,是调试利器,在日常开发中排错时,其断点调试功能非常有帮助,使得我们开发者不用依赖于传统的var_dump()/ech...

    BenCHou 评论0 收藏0
  • PHP xdebug 调试工具安装与使用

    摘要:目前有两种流行的调试器,我在学习和研究过程中,发现网上的各种信息过于凌乱,感到痛苦,影响理解和使用。脚本在运行时,由插件向发起连接,将调试信息发送给,并通过协议进行互动。这种模式的缺陷是配死了目标,不能支持多用户调试。 > 工欲善其事必先利其器,学习一门新语言,调试器的使用必不可少,本文分享一下PHP调试器的使用。 PHP目前有两种流行的调试器, Xdebug Zend Debugg...

    沈俭 评论0 收藏0
  • 看吧,这就是现代化 PHP 该有的样子

    摘要:这大概是我没有及早使用,或多数开发者流连现状造成的。它就是,一个的框架。行为驱动开发是来自测试驱动开发的开发过程。简单的说,它就是经常可能一天几次将小块代码整合进基础代码当中的行为。 showImg(https://segmentfault.com/img/remote/1460000013769815); 这是一篇社区协同翻译的文章,已完成翻译,更多信息请点击 协同翻译介绍 。 文章...

    Tangpj 评论0 收藏0

发表评论

0条评论

Flink_China

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<