phpunit使用

phpunit使用

标签(空格分隔): phpphp


如今是凌晨 3 点。咱们怎样才能知道本身的代码依然在工做呢?

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

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

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

概述

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

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

安装

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中使用

<?php
use PHPUnit\Framework\TestCase as BaseTestCase;

class StackTest extends BaseTestCase
{
    public function testPushAndPop()
    {
        $stack = array();
        $this->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));
    }
}

执行结果以下
phpunit执行结果框架

在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配置执行测试.
 */

<!-- phpunit.xml -->
<?xml version="1.0" encoding="UTF-8"?>

<phpunit colors="true" stopOnFailure="false" bootstrap="phpunit_bootstrap.php">
    <testsuites>
        <testsuite name="class/Test">
            <directory suffix=".class.php">../class/Test</directory>
        </testsuite>
    </testsuites>
</phpunit>

xdebug支持,生成测试覆盖率报告

phpunit --coverage-html dir testsuite.php
PHPUnit @package_version@ by Sebastian Bergmann.
The Xdebug extension is not loaded.

PHPUNIT生成代码测试覆盖率报告时,须要xdebug扩展支持。编程语言

参考文档

相关文章
相关标签/搜索