我想使用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
安装?
答案 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环境下正常工作。