通过Composer安装PHPunit并配置Phpstrom[转]

通过Composer安装PHPunit并配置Phpstrom[转]

相信单元测试对于大多数PHP程序员来说还都处于听说过的阶段,似乎PHP就是为了开发速度快而生的,做了单元测试岂不是会拖慢开发速度?这个说法好像也是有道理的,但是还是要针对项目特点,有些对稳定性,健壮性要求的项目,做单元测试可以大幅减少bug的产生率,提高后期维护性,所以想做一个优秀靠谱的PHP 程序员会做单元测试是必不可少的。

在PHP界用 phpunit 做单元测试几乎是标配,今天就来学习安装和使用 phpunit。

首先如果你已经安装了 composer, 可以将 PHPunit安装到全局,以便后期多个项目可以公用。

执行命令:

composer global require phpunit/phpunit

安装完后在你的项目根目录下创建tests 目录用来存放测试代码,例如我们在 tests 目录下创建一个测试文件 StackTest.php:

use PHPUnit\Framework\TestCase;

class StackTest extends  TestCase {

    public function testPushAndPop() {
        $stack = [];
        $this->assertEquals(0, count($stack));

        array_push($stack, 'foo');
        $this->assertEquals(1, count($stack));
        $this->assertEquals('foo', array_pop($stack));
        $this->assertEquals(0, count($stack));
    }
}

(注意测试文件的命名StackTest.php跟类名对应)
这个测试用来测试 array_push, array_pop 等函数。

为了能自动能找到 PHPUnit\Framework\TestCase 类,在你的项目目录下还需要引入一次phpunit,执行

composer require --dev phpunit/phpunit

创建 phpunit.xml放在你的项目根目录, 这个文件是 phpunit 会默认读取的一个配置文件:

<phpunit bootstrap="vendor/autoload.php">
    <testsuites>
        <testsuite name="service">
            <directory>tests</directory>
        </testsuite>
    </testsuites>
</phpunit>

首先 bootstarp 用来配置启动文件,就是执行测试时首先会加载的一个文件,如果你是用 composer 来组织项目的,写vendor/autoload.php就好。

安装完后配置 Phpstorm,

phpstorm配置phpunit

这时候可以直接在phpstorm 里运行测试了。

转载自: 通过Composer安装PHPunit并配置Phpstrom

通过Composer安装PHPunit并配置Phpstrom[转]