PHPUnit 在 Windows 下的布署及利用教程

PHPUnit 在 Windows 下的布署及利用教程

  • 系统:Windows 10 专业版
  • PHP版本:PHP 5.5.12
  • 服务器工具:WAMPSETucsonVELacrosse 2.5
  • PHPUnit版本:PHPUnit 4.8
  1. 首先到PHPUnit官网(点此步入)下载相应的本子。php
    5.5及以下版本请使用PHPUnit 4.8。取得 .phar 文件,并把名字改为
    phpunit.phar

  2. 把该文件放到放肆地方。以本身本身为例,作者把它内置大家项指标目录下,即
    D:\repository\CourseManagement\mobile_api_test

  3. 右键 自身的Computer ,选择 属性 。点击左侧包车型客车 高档系统安装
    。那个时候弹出 系统性格 ,选择 高级 选项卡,点击右下角的
    遭逢变量 。 在顾客变量里面,双击 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
    并回车,重新来壹遍)。如下图:
    图片 1

三、phpunit 生成二种日志文件的配备格局

windows开采情况下,PHP使用单元测验可以接收PHPUnit。

三、探究进程

一开头下载PHPUnit,获得 .phar 文件,感到要解压,囧。找了半天才意识有叁个能够解压这种文件的网址(点此踏入)。可是并从未什么样用……

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

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

谷歌寻找,必应找出,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功效,不过却收获晋升:

图片 2

第一个反应是:笔者领悟安装了msysgit啊。

第三个反应是:会不会是碰着变量没布署?张开景况变量配置,果然未有。于是将 git.exe 所在文书夹的不二秘籍增多进去。重启Visual
Studio Code,难点消除!

一、配置PHPUnit

C:\bin>phpunit --versionPHPUnit 5.7.19 by Sebastian Bergmann and contributors.
cd /d D:\phpunit

一、配置PHPUnit

首先到PHPUnit官网(点此走入)下载相应的本子。大家选用的是php
5.5,于是选取PHPUnit
4.8。得到 .phar 文件,并把名字改为 phpunit.phar 。

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

右键 本人的微处理器 ,选择 属性 。点击侧边的 尖端系统装置 。那个时候弹出 系统质量 ,选择 高级 选项卡,点击右下角的 境况变量 。
在客户变量里面,双击 PATH ,在 变量值 前面增多;D:\repository\CourseManagement\mobile_api_test (注意最前头的分店,路线填贮存phpunit.phar的门路)。配置这些是为了在猖狂地方都能使用PHPUnit,不配备来讲,须求在phpunit.phar的路径下才具应用PHPUnit。

官方文档里有好几平昔不关系,便是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 并回车,重新来三遍)。如下图:

图片 3

转自:

⑥ 【注意下载下来平日是phpunitx-y.phar,带本子号的 所以要去掉版本号
改革文件名称为 phpunitx.phar】

越来越多关于PHP相关内容感兴趣的读者可查看本站专项论题:《PHP错误与那多个管理方法计算》、《php字符串用法计算》、《PHP数组操作手艺大全》、《PHP运算与运算符用法总括》、《PHP网络编制程序技术总计》、《PHP基本语法入门教程》、《php面向对象程序设计入门教程》及《php卓绝开荒框架总括》

出于大家项目涉嫌到php,因而要求对php代码实行单元测验。经过一番询问,决定用PHPUnit来测量检验php。PHPUnit花了广春节华查找如何布署PHPUnit,看官方网址的文书档案也是一把泪。但明白怎么安顿后,其实仍旧十分轻易的。

梦想本文所述对大家PHP程序设计有所扶持。

开垦命令行win+福睿斯输入cmd,步向到D:\phpunit

二、使用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 + Rubicon,输入cmd并回车。步入该测验文件的目录,输入 phpunit login_test.php 施行测验。

图片 4

简易的测量检验就完事了。

2.装置进度

期望本文所述对我们PHP程序设计有所帮忙。

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 
phpunit test1.php
phpunit --log-junit tmp/logfile.xml ArrTest.php

本文实例陈说了PHP单元测量试验PHPUnit轻易用法。分享给我们供大家参谋,具体如下:

在C:\bin 目录下开创文件StackTest.php

查看是或不是安装成功

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图