Generating Code Coverage with PHPUnit and phpdbg

In this post on his Medium page Elton Minetto shows how to generate the code coverage of your PHPunit tests with better performance using phpdbg.

In a previous post (in portuguese) I explained how to identify tests that are taking too long to execute. In this post, I’ll show you how to increase the performance of code coverage report generation using PHPUnit.

In the phpunit.xml file it’s possible to add configurations to generate reports related to the tests that are being executed. […] In addition to changing the phpunit.xml file, to generate this information we also need to install the extension XDebug. However, by installing it we get a substantial decrease in performance.

He shows an example of the time difference in running the tests (about 1 minute without versus 22 with XDebug). He went looking for a better way and found this post talking about using phpdbg instead. He includes the "brew" commands to get everything you’ll need installed and how to use phpdbg with your coverage calls rather than XDebug. However, as is pointed out at the end of the post, the results are slightly different but they’re close enough to help you know what code to target next.

php[architect]: September 2016 Issue Released – Legacy Code of the Ancients

php[architect] magazine has officially announced the release of their September 2016 issue: Legacy Code of the Ancients.

We don’t always have the luxury of working on greenfield projects where we can try out the latest language features, component libraries, or programming techniques. More often, we’re asked to take care of and add features to an application that just works and supports a company or organization’s objectives—like making money to pay salaries. Unless it’s a relatively new project, you are sure to run into corners of the codebase that should be modernized. The trick is to find the time and marshal your team to do so.

Articles in this month’s edition include:

  • "Illuminating Legacy Applications" (Colin DeCarlo)
  • "Legacy Code Needs Love Too" (John Congdon)
  • "Building for the Internet of Things in PHP" (Adam Englander)

The usual columns are there as well including the "Education Station" and "Security Corner". You can pick up your own copy of this month’s issue directly from the php[architect] site. If you just want a sample of the content, check out this month’s free article – "The Modernization of Multiple Legacy Websites".