使用PHPUnit作为Symfony 2依赖

时间:2013-01-05 17:30:23

标签: symfony cygwin phpunit composer-php

我想使用PHPUnit来测试我的Symfony 2应用程序。我将PHPUnit添加到我的Symfony 2项目composer.json文件中,如documentation中所述:

"require": {
        ...
        "phpunit/phpunit": "3.7.*"
    },

如何立即调用PHPUnit来运行测试?我试图通过

运行它
$ php /path/to/symfony2app/vendor/phpunit/phpunit.php

但是我收到以下错误消息:

Warning: require_once(File/Iterator/Autoload.php): failed to open stream: No such file or directory in C:\...\vendor\phpunit\phpunit\PHPUnit\Autoload.php on line 45

Fatal error: require_once(): Failed opening required 'File/Iterator/Autoload.php' (include_path='.;\...\xampp\php\PEAR') in C:\...\vendor\phpunit\phpunit\PHPUnit\Autoload.php on line 45

我想这是PEAR缺失的问题,但是PEUn不应该是PHPUnit中的依赖项并通过composer update安装?

1 个答案:

答案 0 :(得分:8)

Composer在所谓的“bin-dir”中创建对它安装的包的二进制文件(可执行脚本)的引用。默认情况下,它位于vendor/bin/,因此您可以按原样运行它:php vendor/bin/phpunit。您通常也可以只调用vendor/bin/phpunit,它应该知道用php执行它。

在Cygwin下,可能需要直接调用.bat文件,如vendor/bin/phpunit.bat

如果您希望更容易访问它,可以将其添加到composer.json:

    "config": { 
        "bin-dir": "bin"
    }

然后,文件将在您的项目中仅作为bin/phpunit访问,更短,更少隐藏。

请注意,这些都不是特定于cygwin的,它应该在常规Windows cmd和本机unix环境下正常工作。