使用Composer安装PHPUNIT

19

我正在使用 Symfony 2 做项目,希望在 Windows 7 上使用 PHPUNIT。

On githut phpunit is:

Composer

Simply add a dependency on phpunit/phpunit to your project's composer.json file if you use Composer to manage the dependencies of your project. Here is a minimal example of a composer.json file that just defines a development-time dependency on PHPUnit 3.7:

{
    "require-dev": {
        "phpunit/phpunit": "3.7.*"
    }
}
For a system-wide installation via Composer, you can run:

composer global require 'phpunit/phpunit=3.7.*'
Make sure you have ~/.composer/vendor/bin/ in your path.

我首先使用了系统范围的安装,但是不知道具体安装的时间。 接着我在composer.json文件中添加require-dev依赖项。 这将phpunit安装在C:/wamp/www/myproject/vendor/symfony目录下。接下来我尝试了一些命令:

 composer install --dev

我不能使用phpunit。在cmd.exe中,我输入"phpunit",但出现了错误:

'phpunit' is not recognized as an internal or external command operable program or batch file

我该如何使用phpunit?我有Windows 7,Wamp服务器和php 5.4.12。

7个回答

14

当您通过Composer在Windows上安装PHP-Unit时,全局安装将在以下位置创建文件

C:\Users\YOUR_USERNAME\AppData\Roaming\Composer

要通过命令行轻松执行phpunit,您需要在Windows环境变量中添加phpunit.bat文件的路径。为此:

  1. 右键单击我的电脑
  2. 选择属性 -> 高级系统设置
  3. 高级选项卡中选择环境变量

现在将C:\Users\YOUR_USERNAME\AppData\Roaming\Composer\vendor\bin添加到Windows的PATH中。

现在可以通过命令行运行phpunit了。请注意,您可能需要重新启动命令提示符以使更改生效。


1
谢谢!它帮助了我! - Robert
2
如果您正在使用像PhpStorm这样的IDE通过终端进行操作,您需要关闭并重新打开它以使更改生效。 - Aron

13

软件包的bin文件放置在配置的bin目录中。默认情况下,这是vendor/bin,当使用Symfony标准版时,这是bin文件夹。

要执行此bin文件,请运行./bin/phpunit(或者在不使用Symfony标准版时为./vendor/bin/phpunit

Windows用户必须将此放入双引号中:"bin/phpunit"(或"vendor/bin/phpunit"


我在文件夹C:/wamp/www/myproject/vendor/phpunit中有phpunit。所以我进入C:/wamp/www/myproject并输入“vendor/phpunit”,但是出现了错误“'vendor/phpunit'不被识别为内部或外部命令,可执行程序或批处理文件”。 - woodstick
1
是的,但您需要执行一个 phpunit 文件,它位于 vendor/bin 或 bin 目录中。 - Wouter J

6
composer require --dev phpunit/phpunit ^9

上面的例子假设composer已经添加到了您的$PATH变量中。
您的composer.json应该类似于:
{
  "name": "vendor_name/package_name",
  "description": "This project is for practicing writing php unit tests",
  "minimum-stability": "stable",
  "license": "proprietary",
  "authors": [
    {
      "name": "Umair Anwar",
      "email": "umair.anwar@gmail.com"
    }
  ],
  "autoload": {
    "classmap": [
      "src/"
    ]
  },
  "require-dev": {
    "phpunit/phpunit": "^9",
    "phpunit/dbunit": "^4.0"
  }
}

5
最简单的通过composer安装phpunit的方法是从项目根目录运行。
$ composer require phpunit/phpunit

这将创建一个phpunit文件夹在vendor/bin内,您可以像这样运行单元测试..

$ ./vendor/bin/phpunit

2

在Windows上使用composer进行简单操作,以下是我遵循的方式:

安装composer https://getcomposer.org/doc/00-intro.md#installation-windows 进入你的symphony文件夹,例如C:\wamp64\www\symfony\UserManagement,其中有composer.json文件,然后运行此命令。 应该在全局注册,以免出现问题$phpunit bash: phpunit: command not found

//old version is 5.7 new 6.4 or put newest version.
composer global require --dev phpunit/phpunit ^5.7

1
我记得曾经尝试使用Composer来处理phpunit的依赖关系,但始终无法使其正常工作。
相反,你可以在Git Bash shell中执行以下操作:
mkdir ~/bin
cd ~/bin
curl https://phar.phpunit.de/phpunit.phar > phpunit
chmod +x phpunit

退出bash,然后启动一个新的bash会话。
然后你就可以继续操作了。你可以使用echo $PATH来验证你是否有一个指向~/bin的路径,但似乎默认情况下已经添加了一个路径。

https://phar.phpunit.de/phpunit.phar


0

我也遇到了同样的问题,并通过以下步骤找到了解决方案

在WAMP安装下的Windows 7中运行PHPUnit

  1. Composer Install

    { "require-dev": { "phpunit/phpunit": "3.7.*" } }

  2. 简单设置环境变量 php unit将安装在vendor/bin目录中

    路径:C:\wamp\www\myproject\vendor\bin;

  3. 打开新的命令提示符 C:\Users\guny >phpunit --version PHPUnit 3.7.30 by Sebastain Bergmann


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接