News Feed
Sections




News Archive
Looking for more information on how to do PHP the right way? Check out PHP: The Right Way

Zend Developer Zone:
Zend Framework application's PHPUnit suite 3x faster
October 29, 2010 @ 09:49:54

On the Zend Developer Zone today there's a new tutorial by Olek Janiszewski with a suggestion to help make the execution of your application's PHPUnit tests around three times faster. There's two problems that he sees as the slowdowns - truncating tables after the test runs and declaring tables in controller tests.

As I've mentioned before, Zend Framework isn't really encouraging developers to do TDD (on the other hand, this shouldn't be a surprise in the PHP community). The application architecture is based on singletons all around (front controller, session, layout, helper broker, registry, etc.), the bootstrap doesn't "separate the cacheable from the non-cacheable", there's no built-in support for dependency injection, the ORM is cumbersome to stub out.

So, as a solution to these problems, he suggests a simpler way to handle the test by wrapping the entire thing in a transaction and then rolling it back after the case is done. There are a few issues with doing it this way, though. There's four of them - that the database connection isn't really shared, MyISAM tables, issues with expected primary key values and a performance boost but only on certain systems.

In the comments, there's a note about two things that could help this situation and are already included in some of the Zend Framework functionality - Zend_Test_PHPUnit_DatabaseTestCase and ControllerTestCase.

0 comments voice your opinion now!
phpunit unittest zendframework performance database controller


blog comments powered by Disqus

Similar Posts

Sebastian Bergmann's Blog: Global Variables and PHPUnit

Sebastian Bergmann's Blog: ANSI Colors in PHPUnit Output

Joel Moss' Blog: Screencast: How to use CakePHP Database Migrations

Developer.com: Creating a Custom ACL in PHP

Developer Drive: Create Your Own CRUD App with MySQL and PHP


Community Events





Don't see your event here?
Let us know!


introduction symfony series zendserver release package opinion api library laravel language framework unittest update podcast interview install deployment community tips

All content copyright, 2014 PHPDeveloper.org :: info@phpdeveloper.org - Powered by the Solar PHP Framework