Dominique Stender A blog about my thoughts and experiences in Information Technology

14Nov/090

New VM, first tests with Phing

I spent some time today to set up a new Virtual Machine. My current development system is based on Ubuntu Intrepid and starts acting up. I can't really isolate the issue, some network trouble is there.

Anyways... originally I just wanted to tap a bit into test automation [1, 2] but I ended up downloading the 32bit server version of Ubuntu Koala. With my crappy Tata Photon+ it took a while until the CD .iso file was there but after that it went smooth. The installation system is pretty straight forward and did a decent job of detecting my keyboard.

I chose the LAMP, OpenSSH, Samba packages and let it install.

After that it was just a matter of installing a few more php packages, along with PEAR. This enabled me to set up everything I needed to get a glimpse of what test automation is all about.

# install PHPUnit (make sure you catch the dependencies)
> pear channel-discover pear.phpunit.de
> pear install phpunit/PHPUnit

# install PhpDocumentor
> pear install PhpDocumentor

# install Phing (once more, cover the dependencies)
> pear channel-discover pear.phing.info
> pear install phing/phing
 

In case you're in doubt what all this means:

PHPUnit is the unittesting tool for PHP, a clone of JUnit basically...
PhpDocumentor generates a Html (.pdf, ...) API Doc out of your source code comments...
and finally Phing is a build tool written in and for PHP.

The whole setup tool me less than two hours after the .iso file was there, and that includes additional things like setting up a Samba share and configuring two VirtualHosts for Apache. Really cool and really really smooth.

Now with a short but to-the-point article on Linux.com I got a test scenario running. What joy! you simply enter 'phing' on the commandline and the tools clear up the build filesystem, fill the build again with the latest version of the software, run PhpDocumentor to generate the up-to-date APIDoc, then run all unittests and in case those succeed they generate a tarball with the whole system.

How cool is that?! Really impressive. Those who know me also know that it's hard to impress me ;) .
[Update: By now there is a much more in depth series of articles online here in my blog]