如何使用从作曲家安装的 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 项目? [关闭]