Windows下wamp php单元测验工具PHPUnit安装及退换日志文件配置方式_php手艺_脚本之家

鉴于我们项目涉及到php,因而须求对php代码举行单元测验。经过一番打探,决定用PHPUnit来测量试验php。PHPUnit花了过多时光寻觅怎么样安排PHPUnit,看官网的文书档案也是一把泪。但敞亮怎么结构后,其实依旧非常粗大略的。

转自:

assertEquals; array_push; $this->assertEquals('foo', $stack[count; $this->assertEquals; $this->assertEquals('foo', array_pop; $this->assertEquals; } }?>

C:\bin>phpunit StackTest.phpPHPUnit 5.7.19 by Sebastian Bergmann and contributors.. 1 / 1 Time: 543 ms, Memory: 13.00MBOK 

先写三个亟待测量检验的类,该类有叁个eat方法,方法再次回到字符串:eating,文件名叫Human.php

一、配置PHPUnit

首先到PHPUnit官网(点此步向)下载相应的版本。大家使用的是php
5.5,于是接收PHPUnit
4.8。取得 .phar 文件,并把名字改为 phpunit.phar 。

把该公文放到任性地方。以本身要好为例,笔者把它内置我们项指标目录下,即D:\repository\CourseManagement\mobile_api_test 。

右键 本身的Computer ,选择 属性 。点击左侧的 高端系统设置 。此时弹出 系统个性 ,选择 高级 选项卡,点击右下角的 情形变量 。
在客商变量里面,双击 PATH ,在 变量值 前面增多;D:\repository\CourseManagement\mobile_api_test (注意最前边的支行,路线填寄存phpunit.phar的路线)。配置这几个是为了在随心所欲地方都能选用PHPUnit,不计划来讲,需求在phpunit.phar的门路下技巧应用PHPUnit。

合Hungary语档里有好几尚非亲非故系,正是php的境遇变量也要设置。例如作者的 php.exe 在E:\software\wamp\bin\php\php5.5.12 里,那么也要在 PATH 后边增加;E:\software\wamp\bin\php\php5.5.12 。PS:大概是因为作者从不安装PHP的IDE,所以一直还未安插它,有时之间才想到或者要增加这几个意况变量。

按火速键 Win + R ,输入cmd并回车。进入寄放phpunit.phar的门径。输入 echo @php "%~dp0phpunit.phar" %* > phpunit.cmd 并回车。接着输入 phpunit --version 并回车。假如获得输出 PHPUnit x.y.z by Sebastian Bergmann and contributors. 则表示配置好了(固然有误,输入exit 并回车,重新来一遍)。如下图:

图片 1

  1. 首先到PHPUnit官网(点此进入)下载相应的本子。php
    5.5及以下版本请使用PHPUnit 4.8。取得 .phar 文件,并把名字改为
    phpunit.phar

  2. 把该文件放到大肆地方。以自己要好为例,作者把它放到我们项目标目录下,即
    D:\repository\CourseManagement\mobile_api_test

  3. 右键 自家的微微型机 ,选择 属性 。点击右侧的 高端系统设置
    。那时候弹出 系统品质 ,选择 高级 选项卡,点击右下角的
    碰着变量 。 在客户变量里面,双击 PATH ,在 变量值
    前面增添 ;D:\repository\CourseManagement\mobile_api_test
    (注意最前边的总局,路线填寄放phpunit.phar的路线)。配置这些是为着在随性所欲地点都能利用PHPUnit,不布置来讲,须要在phpunit.phar的门道下技艺接纳PHPUnit。

    法定文书档案里有几许尚无提到,正是php的情况变量也要设置。譬如本人的
    php.exeE:\software\wamp\bin\php\php5.5.12 里,那么也要在
    PATH 后边增加 ;E:\software\wamp\bin\php\php5.5.12
    。PS:恐怕是因为本身未曾设置PHP的IDE,所以直接从未配备它,临时之间才想到大概要增进这一个情状变量。

  4. 按神速键 Win + R ,输入cmd并回车。步入寄放phpunit.phar的路线。输入

    echo @php "%~dp0phpunit.phar" %* > phpunit.cmd
    并回车。接着输入 phpunit --version 并回车。假设得到输出
    PHPUnit x.y.z by Sebastian Bergmann and contributors.
    则表示配置好了(假若有误,输入 exit
    并回车,重新来二次)。如下图:
    图片 2

越来越多关于PHP相关内容感兴趣的读者可查阅本站专项论题:《PHP错误与极度管理情势总结》、《php字符串用法计算》、《PHP数组操作技术大全》、《PHP运算与运算符用法总计》、《PHP互连网编制程序技术总括》、《PHP基本语法入门教程》、《php面向对象程序设计入门教程》及《php优质开拓框架计算》

里头assertEquals方法为断言,判断eat方法重临是不是等于’eating’,即便回去一向则成功不然重返错误,运转测量试验:展开命令行,步入test1.php的路线,然后运转测验:

  • 系统:Windows 10 专业版
  • PHP版本:PHP 5.5.12
  • 服务器工具:WAMPSEEscortVEEvoque 2.5
  • PHPUnit版本:PHPUnit 4.8

一、配置PHPUnit

phpunit --log-tap tmp/logfile.tap ArrTest.php

PHPUnit 4.8.35 by Sebastian Bergmann and contributors..Time: 202 ms,
Memory: 14.75MBOK

三、探求进程

一开头下载PHPUnit,得到 .phar 文件,以为要解压,囧。找了半天才察觉有二个可以知道解压这种文件的网址(点此步向)。然则并未怎么用……

照着官方文书档案来做,运营时现身谬误:

‘php’ 不是内部或外部命令,亦不是可运维的前后相继
或批管理公事。

Google寻找,必应找寻,StackOverFlow寻找,百度寻觅,搜到的答案都不曾用。

注重是因为她们都默许你早就配备好了PHP意况变量……

末尾想着是还是不是在此以前生成的 phpunit.cmd 有标题?于是查看一下以此文件的内容。猛然想到是或不是PHP景况变量没安装的案由?张开cmd,输入 php --version 。得到:

‘php’ 不是里面或外界命令,亦不是可运营的顺序
或批管理公事。

和地点的不当同样!果然是这里的主题素材。于是把 ;E:\software\wamp\bin\php\php5.5.12 加多随地境变量中。再运转 php --version 得到:

PHP 5.5.12 (cli) (built: Apr 30 2014 11:20:58)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
with Xdebug v2.2.5, Copyright (c) 2002-2014, by Derick Rethans

再进入 phpunit.cmd 所在文件夹,运营 phpunit --version。得到:

PHPUnit 4.8.18 by Sebastian Bergmann and contributors.

标题一下子就解决了!

透过这一次的研讨,现在遭受”找不到xxx”这种主题材料的时候,首先会回想景况变量的安装。

例如说消除那个主题素材的当日早上,小编想利用Visual Studio
Code的Git效率,可是却赢得升迁:

图片 3

率先个反应是:笔者显然安装了msysgit啊。

其次个反应是:会不会是情况变量没安顿?张开情形变量配置,果然未有。于是将 git.exe 所在文件夹的路子增添进去。重启Visual
Studio Code,难点消灭!

*生成tap格式的日志文件

则意味断言处成功,即重临值与传播的参数值一致。

二、使用PHPUnit实行测量试验

行使PHPUnit,必需利用  。以login.php为例(位置在D:\repository\CourseManagement\mobile_api ),大家的始发版本是这么的(接待调侃本博客内的代码):

<?php

    error_reporting(0);

    $workNumber = $_POST["login-user"];
    $password = $_POST["login-password"];
    $tableName = $_POST["ident"];

    $con = mysqli_connect("localhost", "root", "", "teacher_class_system");
    if (!$con) {
        die('Could not connect: ' . mysql_error());
    } else {
        mysqli_query($con, "SET NAMES utf8");

        $result = mysqli_query($con, "SELECT * FROM $tableName where workNumber = $workNumber and password = $password");
        if (mysqli_num_rows($result) < 1) {
                echo "false";
        } else {
                $result_arr = mysqli_fetch_assoc($result);
                echo json_encode($result_arr, JSON_UNESCAPED_UNICODE);
        }
    }

    ?>

如此没有办法测验,于是张开一翻改善。首先在 login.php 所在文件夹里创立一个文件夹 classes,并在个中新建 class_login.php ,内容为 login.php 改进后的本子:

 <?php

    class Login {
        // 测试工具PHPUnit要求一定要在这里给变量默认值,于是默认为空。
        public function login($workNumber = "",$password = "",$tableName = "") {        
            $con = mysqli_connect("localhost", "root", "", "teacher_class_system");
            if (!$con) {
                die('Could not connect: ' . mysqli_error());
            } else {
                mysqli_query($con, "SET NAMES utf8");

                $result = mysqli_query($con, "SELECT * FROM $tableName where workNumber = $workNumber and password = $password");
                if (!$result || mysqli_num_rows($result) == 0) {
                    return "false";
                } else {
                    $result_arr = mysqli_fetch_assoc($result);
                    return json_encode($result_arr, JSON_UNESCAPED_UNICODE);
                }
            }
        }
    }

    ?>

而外,也要改善原本那些 login.php 的内容,改正后如下:

  <?php
    error_reporting(0);

    require_once './classes/class_login.php';

    $workNumber = $_POST["login-user"];
    $password = $_POST["login-password"];
    $tableName = $_POST["ident"];

    $log = new Login;
    $response = $log->login($workNumber,$password,$tableName);

    if($response != "false") {
        session_start();
        $_SESSION['id']=$tableName;
    }

    echo $response;

    ?>

始发写测量试验文件

本身把测验文件放在 D:\repository\CourseManagement\mobile_api_test 这一个文件夹内。新建叁个文本
`login_test.php’ ,并写入以下代码:

  <?php 
    require_once dirname(__FILE__).'/../mobile_api/classes/class_login.php';

    class LoginTest extends PHPUnit_Framework_TestCase {
        public function testLoginSuccess() {
            $expected = '{"workNumber":"00001","password":"00001","name":"西瓜","sex":"男","birthday":"20151201","department":"计算机","telephone":"110","email":"git@github.com"}';

            $workNumber = '00001';
            $password = '00001';
            $tableName = 'user_teacher';
            $lg = new Login;
            $actual = $lg->login($workNumber,$password,$tableName);

            $this->assertEquals($expected,$actual);
        }

        function testLoginFail() {
            $expected = 'false';

            $workNumber = '11111';
            $password = '11111';
            $tableName = 'user_teacher';

            $lg = new Login;
            $actual = $lg->login($workNumber,$password,$tableName);
            $this->assertEquals($expected,$actual);
        }
    }

    ?>

实行测验文件

神速键 Win + LX570,输入cmd并回车。步向该测验文件的目录,输入 phpunit login_test.php 试行测验。

图片 4

简简单单的测量检验就做到了。

但愿本文所述对大家PHP程序设计有所援助。

安装

一、安装PHPUnit

安装phpunit

本身用的是php版本是5.6.25 所以作者采纳的是PHPUnit 5.7

phpunit --version

正文实例陈述了Windows下wamp
php单元测量试验工具PHPUnit安装及变化日志文件配置格局。分享给大家供大家参谋,具体如下:

更加多关于PHP相关内容感兴趣的读者可查看本站专项论题:《PHP错误与特别管理方法总计》、《php字符串用法计算》、《PHP数组操作技艺大全》、《PHP运算与运算符用法总括》、《PHP互联网编程技术总结》、《PHP基本语法入门教程》、《php面向对象程序设计入门教程》及《php非凡开垦框架总括》

相关文章