【问题标题】:phpunit command doesn't work for laravel 4 on windows 7phpunit 命令不适用于 Windows 7 上的 laravel 4
【发布时间】: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 是吗?

标签: php unit-testing laravel phpunit


【解决方案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. 右键单击​​“计算机”,然后单击属性

          1. 在第二个窗口点击Advanced system settings

          1. Advanced 下的下一个窗口中单击Environmental Variables

          1. 在下一个窗口中双击PATH,然后通过附加设置PATH变量

          laravel-project/vendor/bin; 的完整路径请注意末尾的 ;

          注意:PATH 中可能已经存在其他变量,因此请确保不要通过在最后附加自己的变量来覆盖它们

          1. 最后点击所有对话框上的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
              • 哦,好吧,我想这就是我所能提供的帮助了。祝你好运!
              猜你喜欢
              • 2013-06-29
              • 2014-07-27
              • 2015-06-12
              • 1970-01-01
              • 2017-07-13
              • 2021-05-02
              • 1970-01-01
              • 1970-01-01
              • 2019-03-25
              相关资源
              最近更新 更多