====== Setting up development environment ====== run-tests.php is a PHP script so all you really need is a fairly standard development environment. This is a brief set of instructions. If you just want to **run** the code this page is not for you - look [[http://wiki.php.net/qa/runtests/howtorun|here]] ==== Installing PHP ==== * Download the PHP 5.4.0 source tar * Extract into /the/place/you/keep/php/source * cd /the/place/you/keep/phpsource/ * configure --with-zlib --enable-pcntl --exec-prefix=/usr/local/minimalphp * make * sudo make install This gets a recent copy of PHP installed in /usr/local/minimalphp/bin/php. Note: you do not _need_ zlib, a couple of the unit test use it in testing the --GZIP_POST-- and --DEFLATE_POST-- sections. You can skip these tests with a configuration variable. You also only need pcntl for running tests in parallel. So, in fact your configure command here could be --disable-all. This would be enough to run the run-tests.php and its unit tests. ==== Installing other things ==== The run-tests.php code is unit tested using PHPUnit. The unit tests can be run individually but the easiest way to run them all is from a build.xml file driven by phing. Code documentation is generated using Doxygen and unit test code coverage comes from Xdebug. You don't **need** any of these things if all you want to do is **run** the code. You do need them if you want to make changes and test your changes. So, in summary, install: * PHPUnit (which you should be able to install using pear) * Phing (likewise) * Doxygen (download, extract, configure, make sudo make install) * Xdebug 2.2.0 (download and build). Follow the Xdebug instructions carefully - make sure that your php.ini is pointing to the right xdebug.so. ==== Getting the development version of parallel run-tests.php ==== git clone http://git.php.net/repository/phpruntests.git Under the phpruntests directory you will find all the source code under the directory /src and all of the unit tests under the directory /tests. The main program is called run-tests.php. The main program is located in the directory /src. Assuming that you have installed all the tools above, yo may want to run phing doc first. This will generate class documentation in a sub directory called _docs. It may be useful to look at that in conjunction with the source code and documentation on this wiki. ==== Checking that the code is working ==== The source code comes with a set of PHPUnit test cases and a QA test suite, all of this is controlled in a build.xml file. Before running the tests you **must set up a configuration file**. You will find phpdefinitions.txt.sample in the phpruntests directory. Copy it to phpdefinitions.txt and modify the settings to suit those on your system. === Unit tests === phing test === QA === phing qa This will run unit tests first and the go on to run a standard test bucket, first with the old version of run-tests.php and the with the new version (in sequential mode). A php script is used to compare the results of the new and old versions. Look in phpruntests/_compare for a results file. At the moment (18th May 2012) you can expect a few differences in the output from the old and new versions of run-tests.php. These are mainly due to REDIRECTTEST not being implemented and a few other small differences in tests which need to be fixed.