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

Matthew Turland's Blog:
Process Isolation in PHPUnit
Aug 20, 2010 @ 14:26:41

Matthew Turland has a new post today about isolating tests in PHPUnit testing to try to avoid overlap in the resources each needs.

One requirement of the test suite was that some test methods had to be run in a separate process since class declarations reside in the global scope and persist until the process terminates. So, I slapped a @runInSeparateProcess annotation in the docblock of a test method with that requirement, ran the test suite… and watched that test method fail because the class was still being declared.

After come close examination of his code and the PHPUnit source, he found the issue - a misunderstanding of how the preserveGlobalState property should be set. For it to work as he wanted, it needed to be set before the run() method was called for test execution. To correct the issue in his code, he overrides the run() method to set the value and call the parent.

tagged: process isolation phpunit unittest preserveglobalstate

Link:


Trending Topics: