无法从命令行 运行 phpunit 测试

Can't run phpunit tests from command line

我正在尝试 运行 在一个新的 laravel 5 应用程序中使用 phpunit 框架进行单元测试。在我的 laravel 应用程序的根路径中,我运行以下命令:

./vendor/bin/phpunit /tests/ExampleTest.php

然后我收到以下消息:

You need to set up the project dependencies using the following commands:
wget http://getcomposer.org/composer,phar
php composer.phar install

我已经在 may 系统中安装了 composer,我使用 composer 安装 Laravel 5。当我安装一个新的 laravel 5 应用程序时,没有安装 phpunit 吗?如果没有,我如何将其安装到现有的 laravel 5 应用程序中?

我知道我也可以全局安装 phpunit 并解决问题。但也许它会重复,因为我已经在可能 laravel 应用程序中拥有所有 phpunit 代码。

您是否全局安装了 phpunit?我建议你这样做。

只需输入您的 laravel 的根目录(例如 /var/www)

cd /var/www
phpunit

如果你只想测试一个文件,你可以这样做:

phpunit tests/ExampleTest.php

您需要安装 Composer 并在您的应用程序中安装 运行 composer installcomposer update 才能安装 composer.json.

中列出的不同软件包

当您安装 Laravel 应用程序时,它不会立即安装软件包。

您可以通过查看应用程序的供应商目录并检查 phpunit 是否在其中来验证软件包是否已安装。

我遇到了同样的问题,它有一个可能适用于其他人的特定解决方案。我将文件存储在 Dropbox 中,vendor/bin/phpunit 文件应该是这样的符号链接

$ ls -lo vendor/bin/phpunit
lrwxr-xr-x   vendor/bin/phpunit -> ../phpunit/phpunit/phpunit

但是Dropbox偶尔会替换symlinks with the original file,这会导致上面的错误。行为不一致,并且当两台机器同时访问 Dropbox 时,相对符号链接似乎会中断。修复符号链接对我有用,或者你可以直接创建一个新的符号链接到 Dropbox 之外的 vendor/phpunit/phpunit/phpunit 和 运行 那。

编辑:现在我从 Dropbox 中排除 Vendor 和 node_modules - 并且在必要时简单地 运行 composer install。这非常有效,而且还解决了在 Dropbox 上同步这么多文件的麻烦。您可以做的是进入文件夹并删除所有文件。等待 Dropbox 同步。然后将该文件夹标记为已排除。最后,运行 composer install 然后你就得到了你需要的内容。 (删除 + composer install 通常也可以解决其他问题)。

单元测试:

D:\xampp\htdocs\Samplemed\vendor\bin>

phpunit ../../tests/Unit/Company/CompanyUnitTest

功能测试:

D:\xampp\htdocs\Samplemed\vendor\bin>phpunit 

../../tests/Feature/Company/CompanyFeatureTest

请试试这个。它工作正常。

运行 composer install 在我的案例中什么也没做。但是,删除供应商文件夹然后调用 composer install 修复它。