"Web interface" to PHPUnit tests?

PhpUnit TestingTddPhpunit

Php Problem Overview


Is there a simple "Web interface" to running PHPUnit test suites? i.e. a PHP script that runs the test on the command line, and outputs a nicely formatted HTML result.

I develop web applications, and the day-to-day workflow usually switches between the IDE and the browser. I would like to have the unit testing in the same environment.

I'm looking for something really simple and PHP based - I am planning to get into phpUnderControl (which has the functionality I'm looking for) but not yet.

Php Solutions


Solution 1 - Php

I recently discovered Visual PHPUnit which looks like a very very nice interface for everyone that doesn't want to run PHPUnit from the command line:

Visual PHPUnit

It seems to be the next iteration of @Matt's PHPUnit Test Report

Solution 2 - Php

I feel your frustration - I'm a UI guy myself. Looking at the terminal too long makes my head spin. I wrote a quick little application that you might find helpful.

PHPUnit test application
(source: mattmueller.me)

You can find it here: http://mattmueller.me/blog/introducing-phpunit-test-report

Cheers! Matt

Solution 3 - Php

After several hours of researching recently, the best PHPUnit web frontend I have come across was https://github.com/NSinopoli/VisualPHPUnit

Solution 4 - Php

You can use phing to run a PHPUnitTask and then convert the output with:

  • PHPUnitReport - This task transforms PHPUnit xml reports to HTML using XSLT.

Example:

<phpunitreport infile="reports/testsuites.xml" 
    format="frames" 
    todir="reports/tests" 
    styledir="/home/phing/etc"/>

See phpunit --help for the various output formats.

The 2.3 version of PHPUnit had a chapter on this, but it is gone for some time now. You might be able to find an old copy with Google somewhere.

Since you mention this is for phpUnderControl: if you are not fixed on that, consider using Jenkins and http://jenkins-php.org.

On a side note: unless we are talking CI servers, most people I know don't use PHPUnit through a web interface. They either just use the command line or their IDE integration.

Solution 5 - Php

You can use Jenkins to run any kind of tasks including PHPUnit tests. It can automatically checkout your app, run the tests, build a HTML report and even email you if the build fails.

Here's the templates you need to setup Jenkins to build a bunch of interesting reports and stats from your project.

Solution 6 - Php

If you don't care about reformatting the output and just want to run PHPUnit from a web page, you can do so with some PHP code like this:

<pre>
<?php 
$argv[0] = "phpunit.phar";
$argv[1] = '--bootstrap';
$argv[2] = 'src/load.php';
$argv[3] = "tests/MoneyTest";
$_SERVER['argv'] = $argv;
include 'phpunit.phar';
?>
</pre>

The file src/load.php is just a bunch of includes to include the classes. The output then looks like this:

#!/usr/bin/env php
PHPUnit 4.1.2 by Sebastian Bergmann.

........................

Time: 122 ms, Memory: 3.25Mb

OK (24 tests, 43 assertions)

Just ignore that first line and you can see the results.

I'm shocked that PHPUnit does not include a basic way to do this. Some classes may be dependent on the web server. Do we just not test those? Some sites have you upload your files and don't allow command line executions.

Solution 7 - Php

I've never seen such a web-interface... But, as you say you are always using your IDE and your webbrowser, why not think the other way ?

i.e. a possible solution would be to launch the unittests from your IDE ;-)
Which means you should be able to click on the failing tests to "jump" to either the test method, or the reason that caused the test to fail, for instance.


In the PHP + PHPUnit world, I know that Zend Studio does that -- yes, it's not free, unfortunatly ;-(


Using Eclipse PDT, a solution would be to register PHPUnit as an external tool (see or instance this blogpost : Using PHPUnit with Eclipse PDT) -- but it's quite not sexy, and you cannot click on the results to jump the the methods/tests...

Another solution would be to develop a plugin to integrate PHPUnit into Eclipse PDT (like it's been done for Zend Studio, I suppose) -- A phpunit4eclipse was created some time ago, but it's just a start, and didn't get much succes, so the author didn't work on it after releasing that...

Solution 8 - Php

I found this:

> I stumbeld upon a post from Parth Patil, whose solution was to create an xml-report from PHPUnit and then use this xml to create your own report. > > I used his solution, made it PHPUnit 3.4 compatible and also added some Reflection to see my testcase doc-comments in the report. (Note: For the refelection i use the Zend_Framework reflection class)

Solution 9 - Php

Ok you said you'd prefer an independent IDE solution, but just so you know there is a recent plugin that enables executing PHPUnit simply into Eclipse, and having a nice representation (like in Zend Studio, but for free).

Here is the link, the main developper replies fast to emails too if you have a problem :

http://www.phpsrc.org/wiki/

I personnaly tested some web interface, but I have always been deceived (not really practital and stable). But this is your choice.

Solution 10 - Php

jframework also has a nice UI for PHPUnit. It breaks the results, and shows test coverage on all files and each file separately. It works on both web and cli, with the cli one having the benefit of dumping every test after its done (the web-based one has to wait until everything is over).

General web output, with code coverage per file

Code coverage report for a single file

Solution 11 - Php

You can always use the Maven for PHP from which you can use the surefire reports (mvn site). More info here: http://www.php-maven.org

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionPekkaView Question on Stackoverflow
Solution 1 - PhpedorianView Answer on Stackoverflow
Solution 2 - PhpMattView Answer on Stackoverflow
Solution 3 - PhpMotinView Answer on Stackoverflow
Solution 4 - PhpGordonView Answer on Stackoverflow
Solution 5 - PhpTomView Answer on Stackoverflow
Solution 6 - PhpCharlesView Answer on Stackoverflow
Solution 7 - PhpPascal MARTINView Answer on Stackoverflow
Solution 8 - PhpPekkaView Answer on Stackoverflow
Solution 9 - PhpMatthieu NapoliView Answer on Stackoverflow
Solution 10 - PhpAbiusXView Answer on Stackoverflow
Solution 11 - PhpSoftyView Answer on Stackoverflow