zoukankan      html  css  js  c++  java
  • phpunit使用

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

    
    <?php
    use PHPUnitFrameworkTestCase 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));
        }
    }
    

    在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扩展支持。

    参考文档

    原文地址:https://segmentfault.com/a/1190000016404300

  • 相关阅读:
    Handler Looper MessageQueue HandlerThread
    Android屏幕适配
    android开发环境搭建
    Task
    C#语法糖
    Window Phone 开发学习
    Android ListView使用
    网络分析工具
    VS2005在水晶报表中如何显示数据库中保存的是图片路径的图片
    在SQL Server中获取Excel文件中所有Sheet工作表的名称
  • 原文地址:https://www.cnblogs.com/lalalagq/p/9971357.html
Copyright © 2011-2022 走看看