1

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

"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 的问题,但 PEAR 不应该是 PHPUnit 中的依赖项并通过安装composer update

4

1 回答 1

8

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

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

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

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

然后该文件将可以bin/phpunit在您的项目中访问,更短且隐藏更少。

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

于 2013-01-05T17:53:02.110 回答