在 Laravel 的 Homestead 中运行 PHPUnit
Posted
技术标签:
【中文标题】在 Laravel 的 Homestead 中运行 PHPUnit【英文标题】:Running PHPUnit in Laravel's Homestead 【发布时间】:2015-03-22 18:13:41 【问题描述】:我正在使用 Homestead 来提供我的 Laravel 应用程序。我正在尝试运行 phpUnit。根据docs:
app/tests 目录中提供了一个示例测试文件。后 安装一个新的 Laravel 应用程序,只需运行
phpunit
在 命令行来运行你的测试。
好吧,当我在我的项目根目录(在 Homestead 环境中)“简单地运行”phpunit
时,我得到了这个:
当前未安装程序“phpunit”。
那我需要单独安装 PHPUnit 吗?文档没有提到它。我做错了什么?
【问题讨论】:
【参考方案1】:您可以在系统上使用全局安装它。
composer global require phpunit/phpunit
但是,如果您需要为不同的项目使用不同的版本,这可能会导致问题。
另一种选择是通过引用vendor
目录的路径来使用作为依赖项的一部分安装的版本。
./vendor/bin/phpunit
您甚至可以在 ~/Homestead
目录中的别名文件中添加别名。这样,您始终使用与项目依赖项一起安装的 phpunit 版本。
alias phpunit=./vendor/bin/phpunit
您需要重新启动宅基地框才能使用别名。
【讨论】:
对我来说,这个安装的 phpunit v5.1 目前与 Laravel 不兼容。使用composer global require "phpunit/phpunit=4.4.*"
指定版本。
Homestead 现在自动设置这个别名。【参考方案2】:
由于它是开发所需的包,Laravel 提供了 PHPunit(composer 中的 require-dev 部分),你应该在 vendor 的文件夹中找到它:
$ your_app/vendor/bin/
您可以从应用文件夹的根目录运行命令,方法是输入:
$ vendor/bin/phpunit
希望对你有帮助!
【讨论】:
【参考方案3】:您可以通过以下方式全局安装它:
$ composer global require "phpunit/phpunit=4.4.*"
# then use
$ phpunit
或者您可以将它与本地作曲家一起使用:
$ composer require "phpunit/phpunit=4.4.*"
# then
$ vendor/bin/phpunit
【讨论】:
第二种方法对我不起作用; phpunit 说You need to set up the project dependencies using the following commands: ...
。不过,全局安装有效。以上是关于在 Laravel 的 Homestead 中运行 PHPUnit的主要内容,如果未能解决你的问题,请参考以下文章
在 PhpStorm 中为 Laravel Homestead vagrant VM 运行测试
迁移到 Homestead 后在 PhpStorm 中为 Laravel 运行测试
新的 laravel/homestead 配置中的 GitHub OAuth 令牌的 Composer 错误
Laravel Homestead PHP:在计算机的 IP 地址上运行项目