Yii2下使用PHPUnit

一、安装PHPUnit

1、linux下安装
全局安装

wget https://phar.phpunit.de/phpunit-6.2.4.phar
chmod +x phpunit-6.2.4.phar
sudo mv phpunit-6.2.4.phar /usr/local/bin/phpunit
phpunit --version

或者直接调用phar文件运行

wget https://phar.phpunit.de/phpunit-6.2.4.phar
php phpunit-6.2.4.phar --version

2、Windows下安装
下载phpunit-6.2.4.phar文件后,放在自己指定的目录。cmd命令行下,在文件所在目录运行如下命令

echo @php "%~dp0phpunit-6.2.4.pharr"  %* > phpunit.cmd

然后把phpuni.cmd所在目录加入到环境变量,即可运行phpunit --version查看版本

二、执行PHPUnit

我在Yii项目的根目录下创建了test目录,phpunit的文件包我都放在了该目录下。tets目录如下
在这里插入图片描述
code下是单元测试的文件,我们直接在项目的根目录运行如下命令即可执行单元测试

D:\www\wln>phpunit test\code UserTest
三、配置

若UserTest中只是简单的测试,我们遵循以上步骤即可。但我们的测试需要用的Yii框架的各种类,运行UserTest之前,就需要把Yii2框架的各种插件和类先加载进来。上图的autoload.php就是做这件事的。我们看下autoloa.php中的内容

<?php
define('YII_ENV', 'test');
defined('YII_DEBUG') or define('YII_DEBUG', true);

include_once __DIR__.'/../vendor/autoload.php';
require_once __DIR__.'/../vendor/yiisoft/yii2/Yii.php';

//composer下的自动加载类声明自定义的命名空间对应的真是路径
/*$classLoader = new \Composer\Autoload\ClassLoader();
$classLoader->addPsr4("app\\", __DIR__.'/../appapi/', true);
$classLoader->addPsr4("common\\", __DIR__.'/../common/', true);
$classLoader->register();*/

//这段代码是声明自定义的命名空间所对应的真是路径,是Yii2框架下的声明。
//他的作用与上面注释掉的代码是相同的
require __DIR__ . '/../common/config/bootstrap.php';
require __DIR__ . '/../appapi/common/config/bootstrap.php';

$config = \common\library\ArrayHelper::merge(
    require(__DIR__ . '/../common/config/main.php'),
    require(__DIR__ . '/../appapi/common/config/main.php')
);
(new \yii\web\Application($config));

//Yii::setAlias('@test', __DIR__);

我们看到该文件与Yii2的入口文件index.php内容基本相同,唯一不同的是最后的new出来的对象没有执行 run() 方法
整理好autoload.php文件后,我们执行如下命令

D:\www\wln>phpunit --bootstrap test\code\autoload.php  test\code UserTest

在UserTest.php中我们就可以自由使用Yii项目的数据等相关组件

但是这样,我们每次运行命令都需要指定bootstrap很麻烦。这个时候我们可以创建phpunit的配置文件,在配置文件中指定bootstrap文件的路径,就不用每次在执行命令式时输入bootstrap文件的路径了。配置文件phpunit.xml内容如下

<?xml version="1.0" encoding="UTF-8"?>
 <!-- 展示了一个最小化的 phpunit.xml 例子,它将在递归遍历 tests 时添加所有在 *Test.php 文件中找到的 *Test 类-->
<phpunit bootstrap="/test/autoload.php">
    <testsuites>
        <testsuite name="mytest">
            <directory>/test/code</directory>
        </testsuite>
    </testsuites>
</phpunit>
<!--#指定文件测试顺序-->
<phpunit bootstrap="/test/autoload.php">
    <testsuites>
        <testsuite name="mytest">
            <file>test/code/HelloTest.php</file>
            <file>test/code/MoneyTest.php</file>
            <file>test/code/SiteTest.php</file>
        </testsuite>
    </testsuites>
</phpunit>

我们把该文件放在了根目录下,所以我们在执行phpunit命令时,必须在根目录,PHPunit才会自动加载配置文件。
以上,就是Yii项目下使用phpunit的基本流程和配置。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值