如何使用从作曲家安装的 phpunit?

Posted

技术标签:

【中文标题】如何使用从作曲家安装的 phpunit?【英文标题】:How to use phpunit installed from composer? 【发布时间】:2012-11-25 16:53:04 【问题描述】:

我想开始用 phpunit 对我的 symfony 2 应用程序进行单元测试。我使用composer安装了phpunit(每个项目依赖)。 http://www.phpunit.de/manual/current/en/installation.html

我现在如何在 Zend Server 上运行 phpunit 命令?我没有安装梨。

【问题讨论】:

【参考方案1】:

我喜欢在composer.json 中定义一个脚本,这样我就可以运行了:

$ composer test
# ... runs phpunit

为此,我需要修改composer.json 以包含这样的条目:

"scripts": 
    "test": [
        "phpunit tests/*.php"
    ]

【讨论】:

【参考方案2】:

更多的作曲方式呢?

composer exec phpunit

它可以用于vendor/bin目录下的每个二进制文件。

【讨论】:

脚本 phpunit 处理返回错误代码 2 的 __exec_command 事件【参考方案3】:

对于 Symfony 3,将 "phpunit/phpunit": "5.4.*" 添加到您的 composer.json 中的 "require-dev" 部分,然后从应用程序根目录运行测试:

./vendor/bin/phpunit tests

【讨论】:

谢谢,已解决。 :) 当然,如果您使用的是旧项目布局,则命令类似于 ./vendor/bin/phpunit src/AppBundle/Tests【参考方案4】:

将其添加为开发依赖项,在您的项目目录中:

composer require --dev "phpunit/phpunit=4.8.*"

现在可以执行安装的phpunit:

./vendor/bin/phpunit

【讨论】:

您现在可以使用版本:5.3.*【参考方案5】:

更新(2014 年 12 月 2 日)

Composer 和 PHPUnit 再次更改了它们的命令。 install 命令还会安装开发依赖项:

作曲家.json:

...
"require-dev": 
    "phpunit/phpunit": "3.7.*"
,

运行它:

$ composer.phar update --prefer-dist --dev

现在您可以通过以下方式运行测试:

$ bin/phpunit -c /app

干杯,

【讨论】:

【参考方案6】:

如果您按照文档操作,您已将 phpunit/phpunit 依赖项设置为“开发依赖项”。

如果你没有composer,你需要先安装它。这在文档中进行了解释:Installation *nix 或 Installation Windows。 如果您已经安装了 composer,最好通过运行 self-update 命令将 composer 更新到最新版本:

$ php composer.phar self-update

完成后,您需要安装所有依赖项,包括开发依赖项。这是通过使用--dev 开关运行update 命令来完成的:

$ php composer.phar update --dev

所有依赖项都安装在vendor 目录中。 PHPunit 从控制台运行。 Composer 自动将控制台文件放在vendor/bin 目录中。你需要在那里执行phpunit文件:

$ vendor/bin/phpunit -c app/

-c 开关告诉 PHPUnit 在app 目录中查找配置文件,Symfony2 已经设置了正确的配置来运行<bundle>/Tests 目录中的所有测试。

更新 (05-04-2013)

Composer 已更改其更新/安装命令。 update 默认会安装 dev 依赖,如果你想安装 dev 依赖,你需要使用--dev 选项。

更新 (11-06-2013)

Composer 再次更改了他们的命令,install 命令也将安装开发依赖项。

【讨论】:

啊哈!错过了 --dev :p 无论如何,我现在收到以下错误:Warning: include(C:\Program Files (x86)\Zend\Apache2\Program Files (x86)\Zend\Ap ache2\htdocs\project1\vendor\phpunit\phpunit\PHPUnit\TextUI\Command.php): failed to open stream: No such file or directory in C:\Program Files (x86)\Zend\Apache 2\htdocs\project1\vendor\composer\ClassLoader.php on line 150. 该文件确实存在。 我在这里继续我的错误:***.com/questions/13765651/… @WouterJ 您的意思是“更新将不会默认安装开发依赖项”吗? @Danack no,update 命令会默认安装dev依赖 @WouterJ 呃,看来我需要再次运行 composer self-update。

以上是关于如何使用从作曲家安装的 phpunit?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 phpunit 和 composer 轻松生成一个最小的 php 项目? [关闭]

PHPUnit类“Error”不扩展PHPUnit_Framework_TestCase

composer如何检查php版本?

PHPUnit在空缓存上运行超时

通过 pear 或 composer 安装 phpUnit

作曲家更新:您的要求无法解决为一组可安装的软件包