====== 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.