PHPUnittesting的“Web界面”?

是否有一个简单的“Web界面”来运行PHPUnittesting套件? 即在命令行上运行testing的PHP脚本,并输出格式良好的HTML结果。

我开发Web应用程序,日常工作stream程通常在IDE和浏览器之间切换。 我想在相同的环境中进行unit testing。

我正在寻找一些非常简单和基于PHP的东西 – 我打算进入phpUnderControl(它有我正在寻找的function),但还没有。

您可以使用phing运行一个PHPUnitTask ,然后使用以下命令转换输出:

  • PHPUnitReport – 此任务使用XSLT将PHPUnit xml报告转换为HTML。

例:

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

有关各种输出格式,请参阅phpunit --help

PHPUnit的2.3版有一章,但是现在已经有一段时间了。 您可能能够在某处findGoogle的旧版本。

既然你提到这是为phpUnderControl:如果你不是固定的,考虑使用jenkins和http://jenkins-php.org

另一方面,除非我们正在谈论CI服务器,否则我认识的大多数人不会通过Web界面使用PHPUnit。 他们要么只是使用命令行或他们的IDE集成。

我最近发现Visual PHPUnit对于不想从命令行运行PHPUnit的每个人来说都是非常好的界面:

Visual PHPUnit

这似乎是@ Matt的PHPUnit Test Report的下一个迭代

我感到你的挫折 – 我自己是一个UI用户。 看着terminal太久,我的头旋转。 我写了一个快速的小应用程序,你可能会发现有帮助。

PHPUnittesting应用程序http://mattmueller.me/blog/wp-content/uploads/2010/06/test.png

你可以在这里find它: http : //mattmueller.me/blog/introducing-phpunit-test-report

干杯! 马特

最近经过几个小时的研究,我遇到的最好的PHPUnit网页前端是https://github.com/NSinopoli/VisualPHPUnit

您可以使用Jenkins运行任何types的任务,包括PHPUnittesting。 它可以自动检查你的应用程序,运行testing,build立一个HTML报告,甚至发送电子邮件,如果生成失败。

以下是您需要设置Jenkins以从项目中构build一组有趣的报告和统计数据的模板 。

我从来没有见过这样的networking界面……但是,正如你所说,你总是使用你的IDE和你的网页浏览器,为什么不以另一种方式思考?

即一个可能的解决scheme是从您的IDE启动unittests 😉
这意味着你应该能够点击失败的testing来跳转到testing方法,或者导致testing失败的原因。

在PHP + PHPUnit世界中,我知道Zend Studio是这样做的 – 是的,它不是免费的,不幸的是;-(

使用Eclipse PDT,解决scheme是将PHPUnit注册为外部工具(请参阅或实例化此博客文章: 将PHPUnit与Eclipse PDT一起使用 ) – 但它不够性感,您不能单击结果来跳转方法/testing…

另一个解决scheme是开发一个插件来将PHPUnit集成到Eclipse PDT中(就像Zend Studio所做的那样) , phpunit4eclipse是在一段时间之前创build的,但这只是一个开始,没有太多的成功,所以作者在发布后没有对它进行处理。

我发现这个

我从Parth Patil的一篇文章中遇到了麻烦,他的解决scheme是从PHPUnit创build一个xml报告,然后使用这个xml来创build自己的报告。

我用他的解决scheme,使PHPUnit 3.4兼容,并添加了一些reflection,看看我的testing用例文档评论在报告中。 (注意:为了反思我使用Zend_Frameworkreflection类)

好吧,你说你更喜欢独立的IDE解决scheme,但只要你知道有一个最近的插件,使PHPUnit执行简单的Eclipse,并有一个很好的代表(如在Zend Studio,但免费)。

这里是链接,如果您遇到问题,主要开发人员也会快速回复电子邮件:

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

我personnalytesting了一些networking界面,但我一直被欺骗(不是真正的实践和稳定)。 但是这是你的select。

jframework也为PHPUnit提供了一个很好的UI。 它打破了结果,并分别显示所有文件和每个文件的testing覆盖率。 它既可以在networking上运行,也可以在cli上运行,在每个testing完成之后,cli可以倾倒每一个testing(networking应用程序必须等到一切都结束)。

一般Web输出,每个文件的代码覆盖率

单个文件的代码覆盖率报告

您始终可以使用Maven for PHP从中使用surefire报告(mvn站点)。 更多信息: http : //www.php-maven.org

如果你不关心重新格式化输出,只想从网页上运行PHPUnit,你可以用下面的PHP代码来实现:

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

文件src / load.php只是包括一些包括类。 输出结果如下所示:

 #!/usr/bin/env php PHPUnit 4.1.2 by Sebastian Bergmann. ........................ Time: 122 ms, Memory: 3.25Mb OK (24 tests, 43 assertions) 

只要忽略第一行,你就可以看到结果。

我感到震惊的是,PHPUnit没有包含这样做的基本方法。 有些类可能依赖于Web服务器。 我们只是不testing这些? 有些网站可以上传文件,不允许执行命令行。