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的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 4 模型事件不适用于 PHPUnit

phpunit-selenium 的 keys() 不适用于 safari webdriver

本地主机不适用于 Windows 7 的 XAMPP 1.7.7

Symfony Doctrine 验证不适用于可嵌入的注释

QApplication::setWindowIcon 适用于 Windows XP,但不适用于 Windows 7

自定义 WebDAV 服务器不适用于 Windows 7 微型重定向器