资讯专栏INFORMATION COLUMN

phpunit使用

ZweiZhao / 1040人阅读

摘要:单元测试是一个为代码编写测试用例并自动运行这些测试的框架。测试驱动的开发是一种单元测试方法,其思想是应该首先编写测试程序,并验证这些测试可以发现错误,然后才开始编写需要通过这些测试的代码。

phpunit使用

标签(空格分隔): php


现在是凌晨 3 点。我们怎样才能知道自己的代码依然在工作呢?

Web 应用程序是 24x7 不间断运行的,因此我的程序是否还在运行这个问题会在晚上一直困扰我。单元测试已经帮我对自己的代码建立了足够的信心 —— 这样我就可以安稳地睡个好觉了。

单元测试 是一个为代码编写测试用例并自动运行这些测试的框架。测试驱动的开发 是一种单元测试方法,其思想是应该首先编写测试程序,并验证这些测试可以发现错误,然后才开始编写需要通过这些测试的代码。当所有测试都通过时,我们开发的特性也就完成了。这些单元测试的价值是我们可以随时运行它们 —— 在签入代码之前,重大修改之后,或者部署到正在运行的系统之后都可以。

-- IBM(https://www.ibm.com/developer...

概述

单元测试是很多编程语言的基本功能, 为保证代码的稳定性和功能正常, 适当的进行单元测试是很有必要的. PHPunit是一个轻量级的PHP单元测试框架。

PHPunit可以和xdebug配合来生成代码覆盖率报告, 并且可以与Jenkins集成来自动测试, 最后可以和selenium整合来完成大型的自动化集成测试.

安装
wget https://phar.phpunit.de/phpunit.phar
chmod +x phpunit.phar
mv phpunit.phar /usr/local/bin/phpunit
sudo mv phpunit.phar /usr/local/bin/phpunit
phpunit --version
使用 PHP中使用
assertEquals(0, count($stack));

        array_push($stack, "foo");
        $this->assertEquals("foo", $stack[count($stack) - 1]);
        $this->assertEquals(1, count($stack));

        $this->assertEquals("foo", array_pop($stack));
        $this->assertEquals(0, count($stack));
    }
}

执行结果如下

在PHP框架中使用
/**
 * @see https://github.com/jiangjianyong/x-tools/tree/master/language/php/x-phpunit
 * 使用说明 代码中的phpunit.xml的配置
 * 引入phpunit_bootstrap.php
 * 执行class/Test/*.class.php
 * 避免在每个测试文件中都引入相同的头文件.
 * 需要在phpunit_bootstrap.php中将TestCase.class.php include, 否则会报错(TestCase类不存在).
 * 在含有phpunit.xml文件的目录下, 执行phpunit, 将会按照phpunit.xml配置执行测试.
 */





    
        
            ../class/Test
        
    
xdebug支持,生成测试覆盖率报告
phpunit --coverage-html dir  testsuite.php 
PHPUnit @package_version@ by Sebastian Bergmann.
The Xdebug extension is not loaded.

PHPUNIT生成代码测试覆盖率报告时,需要xdebug扩展支持。

参考文档

PHPunit官方文档

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

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

相关文章

  • PHP 单元测试

    摘要:上面的规定是必须遵守的,如果代码没有遵守规定不会把他当做单元测试代码。每个单元测试类以被测试的类名开头。每个单元测试函数应该为被测试函数名结尾。函数可能在测试环境不可执行,那么无法获取的执行结果,从而无法对进行单元测试。 本文首发于 https://jaychen.cc/article/34作者 Jaychen showImg(https://segmentfault.com/img/...

    娣辩孩 评论0 收藏0
  • Laravel 测试: PHPUnit 入门教程

    摘要:介绍是最古老和最著名的单元测试包之一。它主要用于单元测试,这意味着可以用尽可能小的组件测试代码,但是它也非常灵活,可以用于很多不仅仅是单元测试。这时,的测试助手可以使这些测试像单元测试简单组件一样容易。新的测试代码如下注意到,在我们新建的 showImg(https://segmentfault.com/img/remote/1460000018355157?w=1440&h=585)...

    张宪坤 评论0 收藏0
  • phpunit 安装

    摘要:所以使用下载安装的方式。解决了,但警告还在,而且没有正常运行。从警告信息发现可以访问的目录包括,刚好即在变量中,也属于可以被脚本读取的目录,于是再运行,得到正确结果安装成功 官方指引 很遗憾, phpunit还没有在ArchLinux的仓库里。 所以使用下载安装的方式。按照官方的指引: wget https://phar.phpunit.de/phpunit.phar chmod...

    microelec 评论0 收藏0
  • PHP单元测试框架PHPUnit使用

    摘要:以前在学习开发时有专门写过的单元测试的文章,开发学习之单元测试,今天再总结下怎么在中使用单元测试。是一个用编程语言开发的开源软件,是一个单元测试框架。单元测试框架经常会包含每个测试的报告,以及给出你已经覆盖到的代码覆盖率。 以前在学习IOS开发时有专门写过Objective-C的单元测试的文章,IOS开发学习之单元测试,今天再总结下怎么在PHP中使用单元测试。 一、前言 在这篇文章中,...

    Bryan 评论0 收藏0
  • phpunit进行TDD入门

    摘要:新的构造函数接下来,我想到,用户可能需要一个不同的构造函数,当创建对象时,可以传入一个值作为账户余额。修改构造函数为这样调用时,相当于传递了给构造函数,满足了需求。 用phpunit实战TDD系列 从一个银行账户开始 假设你已经 安装了phpunit. 我们从一个简单的银行账户的例子开始了解TDD(Test-Driven-Development)的思想。 在工程目录下建...

    amc 评论0 收藏0

发表评论

0条评论

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