PHPUnit


Zend Studio php_pdo_mysql.dll error

I started using phpunit, which is built into Zend Studio 7.2. Everything works fine until it encountered a database query that used PDO. The test case will timeout and zend studio will give you the error “Test case was unexpectedly terminated”. It took a lot of digging to find the real error in the windows event viewer:

Faulting application name: php-cgi.exe, version: 5.2.10.10, time stamp: 0x4abb41d8
Faulting module name: php_pdo_mysql.dll, version: 5.2.10.10, time stamp: 0x4ab23077
Exception code: 0xc0000005
Fault offset: 0x00002580
Faulting process id: 0x458
Faulting application start time: 0x01cb16fb91818916
Faulting application path: C:\Program Files (x86)\Zend\Zend Studio – 7.1.0\plugins\org.zend.php.debug.debugger.win32.x86_5.3.7.v20091116\resources\php5\php-cgi.exe
Faulting module path: C:\Program Files (x86)\Zend\Zend Studio – 7.1.0\plugins\org.zend.php.debug.debugger.win32.x86_5.3.7.v20091116\resources\php5\ext\php_pdo_mysql.dll
Report Id: d31816ab-82ee-11df-99ae-00241dd93279

The solution? While I had Zend Server installed and using PHP 5.3, Zend Studio’s internal version was using PHP 5.2.xxx. I’m pretty certain Doctrine, which uses PDO, requires PHP 5.3. I changed Zend Studio to PHP 5.3 and it worked. In Zend Studio, go to Window->preferences->php->debug and ensure the “PHP executable” is set to PHP 5.3. FYI – My “server” on this screen is set to “Local Zend Server”. Hope this helps!


Cannot redeclare class PHPUnit_Util_FilterIterator

I’m using Zend Studio 7.2 on Windows 7 with Zend Framework 1.10 and Zend Server CE. I’ve created a PHPUnit test case with Zend Studio and am able to run it successfully via the command line. I’d like to use Zend Studio’s interface, but when I run the test case I get the following error “Fatal error: Cannot redeclare class PHPUnit_Util_FilterIterator in C:\Program Files (x86)\Zend\Apache2\htdocs\library\pear\pear\PHPUnit\Util\FilterIterator.php on line 162” .

Update: I got past this error. The problem was related to having both my custom install of PHPUnit and the PHPUnit built into Zend Studio on the include path of the project. Remove one of them and it should work.