目录
简介
PHPUnit是一个轻量级的测试框架。可以安装Xdebug拓展。
环境搭建
本文档里写的是一些在Windows 8.1 + PHP 7.3.12 + Composer环境下搭建PHPUnit的经验。
1. 在本地电脑上为PHPUnit新建一个文件夹,并将这个文件夹路径保存到环境变量中系统变量PATH里,然后重启电脑。
2. 访问https://phar.phpunit.de/phpunit.phar下载一个phpunit.phar到上一个步骤里创建的文件夹里。如果文件名是带版本号的phpunit.phar,可以去掉版本号,让文件名是phpunit.phar,然后在Windows命令行界面,切换当前目录到phpunit.phar所在的目录,然后运行:
echo @php "%~dp0phpunit.phar" %* > phpunit.cmd
就可以在phpunit.phar所在目录下生成一个phpunit.cmd文件。
3. 在命令行界面输入phpunit -v并按回车键,运行结果如果出现phpunit的版本号,就表明phpunit已经安装成功了。
4. 选择或者新建一个项目文件,在Windows命令窗口里切换当前目录到项目文件目录下,然后运行composer init,在项目根目录下新建一个composer.json的配置文件。
5. 在项目根目录下,运行
composer require --dev phpunit/phpunit
给项目引入phpunit文件夹。引入成功后会看到项目根目录下多了src和Vender两个文件夹。这时可以考虑把项目根目录下的composer.json内容改一下,例如:
{
"name": "administrator/unit",
"autoload": {
"psr-4": {
"app\\": "src/"
}
},
"require-dev": {
"phpunit/phpunit": "^9.5"
}
}
6. 在项目目录下新建【mkdir】一个tests文件夹作为存放测试文件的地方。
7. 在项目根目录下新建一个phpunit.xml文件,可以靠敲下面的命令新建。
type nul > phpunit.xml
然后在phpunit.xml里写上如下内容:
<?xml version="1.0" encoding="UTF-8"?>
<phpunit bootstrap="vendor/autoload.php"
colors="true"
verbose="true"
stopOnFailure="false">
<testsuites>
<testsuite name="Test suite">
<directory>tests</directory>
</testsuite>
</testsuites>
</phpunit>
里面的tests就是上一个步骤创建的测试库文件目录。
8. 然后在tests目录下新建测试文件,注意测试文件的文件名需要以Test结尾,如SimpleTest.php。也可以在项目根目录下的tests目录里新建子目录,并将测试文件里放在子目录下。
测试文件的内容可以写上:
<?php
use PHPUnit\Framework\TestCase;
class StackTest extends TestCase
{
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));
}
}
注意命名空间的引入,以及是继承TestCase类【PHPUnit V9.5.8】,而不是继承PHPUnit_Framework_TestCase类【可能是PHPUnit V5版本时可被继承的类】。
9. 在项目根目录下的vendor\bin应该可以看到phpunit和phpunit.bat。phpunit适用于Linux操作系统下命令行调用,而phpunit.bat适用于Windows操作系统下命令行调用。
本次安装是在Windows操作系统下安装的,所以在项目根目录下运行:
start 您的项目根目录路径\vendor\bin\phpunit.bat
就可以看到phpunit的测试运行结果了。
效果图:
参考资料
《 PHPUnit5.0中文手册【注意此手册版本较低】 PHP 档案包 (PHAR) 》
https://www.kancloud.cn/manual/phpunit-book/68605
《 PHPUnit 的用法 》