phpunit 命令不适用于 Windows 7 上的 laravel 4
Posted
技术标签:
【中文标题】phpunit 命令不适用于 Windows 7 上的 laravel 4【英文标题】:phpunit command doesn't work for laravel 4 on windows 7 【发布时间】:2014-08-12 06:34:14 【问题描述】:我最近安装了 laravel 并在 /tests 目录中编写了一些测试,但是当我在 phpunit.xml
存在的同一文件夹中的 cmd 中使用 phpunit
时,它显示为 'phpunit' is not recognized as an internal or external command,operable program or batch file.
。我使用的是 Windows 7。我该怎么办?
【问题讨论】:
是的,我的意思是安装了它 你设置环境变量了吗? 环境变量有什么用? 能够使用phpunit
运行命令。它以前工作过吗?
不,不是,所以你的意思是我应该将 phpunit 可执行文件添加到 PATH 是吗?
【参考方案1】:
这对我有用
控制台窗口中的这个命令用双引号括起来
“供应商/bin/phpunit”
【讨论】:
【参考方案2】:使用 Laravel phpunit 是开箱即用的。在 Windows 上运行它的最简单方法是在 package.json 文件中的脚本中添加一个条目...
"scripts":
...
"tests": "php vendor/phpunit/phpunit/phpunit"
,
现在您只需运行单元测试
npm run tests
【讨论】:
【参考方案3】:全局安装phpunit
:
composer global require phpunit/phpunit
之后您将能够运行phpunit
(即使在 Windows 上):
phpunit
【讨论】:
【参考方案4】:借用@Chris' excellent answer:
更棒的是,你可以将 vendor/phpunit/phpunit/phpunit
设为 environment variable,说“phpunit”,并且当你想在任何 laravel 项目中运行测试时,你只需调用 php %phpunit%
。
演示
【讨论】:
【参考方案5】:我在命令行中添加了这个命令,而不仅仅是 "phpunit"
vendor\bin\phpunit
这对我有用。
【讨论】:
我解释了一点:) 或者你可以将./vendor/bin
添加到PATH环境变量中。这样你就可以从任何 Laravel 根文件夹调用phpunit
。
@ArnovanOordt请提交您的评论作为对这个问题的回答。它易于实施,具有永久性并具有全球范围。这是这里最好的答案,值得自己发帖。【参考方案6】:
如果它显示以下内容:
$ phpunit tests/Feature/ExampleTest.php Sebastian Bergmann 的 PHPUnit 3.7.21。
在“C:\xampp\htdocs\blog1\tests\Feature\ExampleTest.php”中找不到类“tests/Feature/ExampleTest”。
而不是键入 tests/Feature/ExampleTest.php 您说测试“\\Feature\\Example.test”,因为您使用的是 windows,而不是 mac。 :) GL & HF
只使用 \ 或 / 会出错 :)
【讨论】:
不是这么说的。错误消息是别的东西【参考方案7】:alias phpunit="vendor/bin/phpunit"
【讨论】:
虽然这段代码 sn-p 可以解决问题,但including an explanation 确实有助于提高帖子的质量。请记住,您正在为将来的读者回答问题,而这些人可能不知道您的代码建议的原因。也请尽量不要用解释性 cmets 挤满你的代码,因为这会降低代码和解释的可读性!【参考方案8】:如果您是窗口用户并且遇到此问题,请执行以下操作:
你需要告诉Window在哪里可以找到PHPUnit命令,你可以首先验证这个文件是否存在于你的Laravel项目的/vendor/bin下
最后,您需要在窗口 PATH 变量中附加 /vendor/bin
的完整路径,
为此: 1. 右键单击“计算机”,然后单击属性
-
在第二个窗口点击
Advanced system settings
-
在
Advanced
下的下一个窗口中单击Environmental Variables
-
在下一个窗口中双击
PATH
,然后通过附加设置PATH变量
laravel-project/vendor/bin;
的完整路径请注意末尾的 ;
。
注意:PATH 中可能已经存在其他变量,因此请确保不要通过在最后附加自己的变量来覆盖它们
-
最后点击所有对话框上的
Ok
【讨论】:
感谢您的详细解释。解决了我的问题。【参考方案9】:正如 Unnawut 所说,它不起作用,因为 vendor/phpunit/phpunit/phpunit 不是本机 Windows 可执行文件。您需要一个基本上称为“php phpunit”的 .bat 或 .cmd 文件。 vendor/bin 中应该有一个,但为了方便起见,试试这个 - 在站点的根目录下创建一个文件 phpunit.bat(或 .cmd),其中包含以下内容:
@ECHO OFF
SET BIN_TARGET=%~dp0/vendor/phpunit/phpunit/phpunit
php "%BIN_TARGET%" %*
现在您可以从站点根目录的命令行调用 phpunit。
【讨论】:
【参考方案10】:我的解决方案:
php vendor/phpunit/phpunit/phpunit
当然,这假设您已经set up a php environment variable in Windows
【讨论】:
【参考方案11】:phpunit 可执行文件不在您的项目根文件夹中,这就是它找不到它的原因。
现在我假设您的 composer.json
文件中已经有 phpunit,如下所示:
"require-dev":
"phpunit/phpunit": "3.7.*"
当由 composer 安装时,包将被安装到vendor/vendor_name/package_name
。因此,要在项目根目录下运行它,请输入以下命令:
vendor/phpunit/phpunit/phpunit
【讨论】:
composer update
然后从您拥有的文件夹中执行 vendor/phpunit/phpunit/phpunit
phpunit.xml
哦,好吧,我想这就是我所能提供的帮助了。祝你好运!以上是关于phpunit 命令不适用于 Windows 7 上的 laravel 4的主要内容,如果未能解决你的问题,请参考以下文章
phpunit-selenium 的 keys() 不适用于 safari webdriver
本地主机不适用于 Windows 7 的 XAMPP 1.7.7