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
[code lang="php"]@php_bin@[/code]
with
[code lang="php"]/Applications/MAMP/bin/php5/bin/php[/code]
Get the file pear-phpunit from the extracted folder and place it in usr/local/bin
- Open the finder
- Select Go->to folder
- enter usr/local/bin in the path
- Drag and drop the file.
With the finder open, select the file and open with a text editor. Ensure the file reads as follows:
[code lang="php"] #!/Applications/MAMP/bin/php5/bin/php < ?php /* PHPUnit * * Copyright (c) 2002-2008, Sebastian Bergmann. * 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(); ?> [/code]
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:
[code lang="php"] sudo mv /usr/local/bin/phpunit-pear /usr/local/bin/phpunit [/code]
Now you can run tests from within MAMP by simply typing phpunit into terminal.



Hi,
Wouldn’t it just be easier to add /Applications/MAMP/bin/php5/bin to the $PATH by editing the ~/.bash_profile?
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
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.
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.
Mark,
Sylvain,
Thanks for sharing your experiences about configuring phpunit with MAMP. Combining these 2 tips, I got it working, and it works perfectly!
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