Installing PHPUnit with MAMP

Download your preferred copy of PHPUnit from http://pear.phpunit.de/get/

Extract the folder, placing the folder PHPUnit in /Applications/MAMP/bin/PHP5/lib/php

Open the file PHPUnit/Util/Fileloader.php and replace all instances of

@php_bin@

with

/Applications/MAMP/bin/php5/bin/php

Get the file pear-phpunit from the extracted folder and place it in usr/local/bin

  1. Open the finder
  2. Select Go->to folder
  3. enter usr/local/bin in the path
  4. Drag and drop the file.

With the finder open, select the file and open with a text editor. Ensure the file reads as follows:

#!/Applications/MAMP/bin/php5/bin/php
<?php
/* PHPUnit
 *
 * Copyright (c) 2002-2008, Sebastian Bergmann <sb@sebastian-bergmann.de>.
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 *   * Redistributions of source code must retain the above copyright
 *     notice, this list of conditions and the following disclaimer.
 *
 *   * Redistributions in binary form must reproduce the above copyright
 *     notice, this list of conditions and the following disclaimer in
 *     the documentation and/or other materials provided with the
 *     distribution.
 *
 *   * Neither the name of Sebastian Bergmann nor the names of his
 *     contributors may be used to endorse or promote products derived
 *     from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRIC
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGE.
 *
 * $Id: pear-phpunit 2805 2008-04-14 16:52:19Z sb $
 */


require_once 'PHPUnit/Util/Filter.php';

PHPUnit_Util_Filter::addFileToFilter(__FILE__, 'PHPUNIT');

require 'PHPUnit/TextUI/Command.php';

define('PHPUnit_MAIN_METHOD', 'PHPUnit_TextUI_Command::main');

PHPUnit_TextUI_Command::main();
?>

Now rename your file to phpunit (if you already have a copy of phpunit installed, rename the file to phpunit-mamp so you know which one to use). In terminal:

sudo mv /usr/local/bin/phpunit-pear /usr/local/bin/phpunit

Now you can run tests from within MAMP by simply typing phpunit into terminal.

8 Comments

Shoan

Hi,

Wouldn’t it just be easier to add /Applications/MAMP/bin/php5/bin to the $PATH by editing the ~/.bash_profile?

Daniel Alvarez

Hello!!!

I followed everything but keep getting command not found… The only difference its that i don’t have my files with in mamp but rather o a folder on my documents…

So y went to my folder where my test is located and on a terminal wrote phpunit tests and got “-bash: /usr/local/bin/phpunit: Permission denied” wich told me that was going to the right place, but then i wrote sudo phpunit tests and got “command not found”

any help i will appreciatte it

kirby.mark

Hi Daniel, I remember having this same problem, but it was solved by running through the above. You could try Shoan’s suggestion instead. I also have my files outside of MAMP.

Sorry couldn’t be of more help. If I run into the problem on another machine, I’ll update the post – and if you fixed it, please let us know.

sylvain pham

Hi,
It’s missing this in your document.

1. give right :
sudo chmod +x /usr/local/bin/phpunit

2. replace @php_bin@ in phpunit-pear ( 1 first line)
with this, /Applications/MAMP/bin/php5/bin/php

sudo mv /usr/local/bin/phpunit-pear /usr/local/bin/phpunit

it’s work fine for me.

David

Mark,
Sylvain,

Thanks for sharing your experiences about configuring phpunit with MAMP. Combining these 2 tips, I got it working, and it works perfectly!

David O

Just a quick note that with Snow Leopard, I didn’t find this to be quite as necessary. Snow Leopard *finally* includes a modern version of PHP (5.3.0 for v10.6.2), so you can just install PHPUnit like you would on any other system, via ‘pear install':

http://www.phpunit.de/manual/current/en/installation.html

Bart McLeod

The pear installer currently shipped with mamp is version 1.9.1 while the phpunit installation needs version 1.9.2

Leave a comment: