是否有一个简单的“Web界面”来运行PHPUnit测试套件?即在命令行上运行测试的PHP脚本,并输出格式良好的HTML结果。PHPUnit测试的“Web界面”?
我开发Web应用程序,并且日常工作流程通常在IDE和浏览器之间切换。我想在相同的环境中进行单元测试。
我正在寻找一些非常简单和基于PHP的东西 - 我打算进入phpUnderControl(它有我正在寻找的功能),但还没有。
是否有一个简单的“Web界面”来运行PHPUnit测试套件?即在命令行上运行测试的PHP脚本,并输出格式良好的HTML结果。PHPUnit测试的“Web界面”?
我开发Web应用程序,并且日常工作流程通常在IDE和浏览器之间切换。我想在相同的环境中进行单元测试。
我正在寻找一些非常简单和基于PHP的东西 - 我打算进入phpUnderControl(它有我正在寻找的功能),但还没有。
您可以使用phing运行PHPUnitTask,然后转换的输出与:
实施例:
<phpunitreport infile="reports/testsuites.xml"
format="frames"
todir="reports/tests"
styledir="/home/phing/etc"/>
用于各种输出格式参见phpunit --help
。
2.3版的PHPUnit有一章介绍了这一点,但现在已经有一段时间了。您可能能够在某处找到Google的旧版本。
既然你提到这是为phpUnderControl:如果你不固定在那,考虑使用詹金斯和http://jenkins-php.org。
在旁注:除非我们正在谈论CI服务器,否则大多数我认识的人都不会通过Web界面使用PHPUnit。他们或者只是使用命令行或者他们的IDE集成。
干杯@戈登这看起来很有趣。不过,我想绕过附加依赖关系,所以我会尝试首先找到的博客文章(请参见下文)。如果这不起作用,我会回到这个。 –
@Pekka博客文章中的方法看起来很相似。它也使用XML,然后将其重新格式化为HTML。如果您不想使用phing,只需从PHPUnit获取XML,然后使用Phing的XSLT以编程方式转换为PHP即可。我认为XSL文件在这里:http://phing.info/trac/browser/trunk/etc – Gordon
当前链接到XSL文件是http://www.phing.info/trac/browser/etc –
我从来没有见过这样的网络界面......但是,正如你所说,你总是使用你的IDE和你的网页浏览器,为什么不以另一种方式思考?
即一个可能的解决方案是从你的IDE启动unittests ;-)
这意味着你应该能够点击失败的测试来“跳转”到测试方法或导致例如,测试失败。
在PHP + PHPUnit的世界,我知道Zend Studio确实是 - 是的,它不是免费的,不幸的是;-(
使用Eclipse PDT,一个解决办法是注册PHPUnit的作为外部工具(请参阅或实例这个博客文章:Using PHPUnit with Eclipse PDT) - 但它不是性感的,你不能点击结果跳转方法/测试...
另一种解决方案是开发一个插件集成PHPUnit导入Eclipse PDT (就像Zend Studio所做的一样,我是su ppose) - 一个phpunit4eclipse创建前一段时间,但它只是一个开始,并没有得到太多的更迭,所以笔者并没有释放,经过上工作...
干杯@Pascal,很好的提示,但我既不使用Zend也不使用Eclipse(我使用phpEd)。自从我购买上一次更新以来,这已经有一段时间了,所以现在可以支持这一点 - 我将明确检查,确定主意。不过,我仍然更喜欢独立于IDE的解决方案。 –
不客气:-) ;;哦,关于另一个IDE确定^^ –
Netbeans也有一个方便的PHPUnit Runner GUI,它允许调试测试,当测试出于未知原因失败/错误时这很有用。 –
我发现this:
我从Parth Patil发布了一篇文章,其解决方案是从PHPUnit创建一个xml报告,然后使用此xml创建您自己的报告。
我使用了他的解决方案,使它与PHPUnit 3.4兼容,并在报告中添加了一些反射来查看我的测试用例文档注释。 (注:对于refelection我使用Zend_Framework反射类)
好吧你说你会喜欢一个独立的IDE解决方案,但只是让你知道有一个最近的插件,使执行PHPUnit的简单到Eclipse,和有一个很好的代表(像在Zend Studio中,但免费)。
这里是链接,主要developper回复快速的电子邮件太多,如果你有一个问题:
我personnaly测试了一些web界面,但我一直被欺骗了(不是真的practital和稳定)。但这是你的选择。
干杯Matthieu,我不使用eclipse,但这仍然是很好的知道。+1 –
您可以随时使用Maven for PHP,从中您可以使用surefire报告(mvn站点)。 更多的信息:http://www.php-maven.org
我觉得你的失望 - 我是一个UI人自己。看着终端太久会让我头晕目眩。我写了一个快速的小应用程序,您可能会发现有帮助。
PHPUnit test application http://mattmueller.me/blog/wp-content/uploads/2010/06/test.png
你可以在这里找到:http://mattmueller.me/blog/introducing-phpunit-test-report
干杯! 马特
马特的解决方案非常棒,用这个叉子就可以变得更好。 https://github.com/NSinopoli/VisualPHPUnit 竖起大拇指! – Bruiser
你的链接被破坏 –
数小时最近研究后,最好PHPUnit的web前端我所遇到的是https://github.com/NSinopoli/VisualPHPUnit
您可以使用Jenkins运行任何类型的任务,包括PHPUnit测试的。它可以自动检出你的应用程序,运行测试,建立一个HTML报告,甚至在构建失败时发邮件给你。
Here's the templates您需要设置Jenkins以从您的项目中构建一堆有趣的报告和统计数据。
jenkins +1! – Matt
我最近发现Visual PHPUnit
它看起来像一个非常非常漂亮的界面给大家,不希望在命令行中运行的PHPUnit:
这似乎是@马特的下一个迭代PHPUnit Test Report
是否可以在没有* pear *配置的情况下安装它? – Fractaliste
jframework对PHPUnit也有很好的UI。它打破了结果,并分别显示了所有文件和每个文件的测试覆盖率。 它既可以在web上运行,也可以在cli上运行,cli可以在每次测试完成后倾倒每个测试(基于web的测试必须等到一切结束)。
如果你不关心格式化输出,只是想从网页运行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服务器。我们只是不测试这些?有些网站可以上传文件,不允许执行命令行。
+1 Say Pekka,你无法读懂我的想法,对吗? – middus
@middus有时有*惊人*巧合。 :) –
你也可能想看看Hudson作为phpUnderControl的替代品。一篇很好的文章(有一些很好的在线参考资料)关于如何设置它可以在http://luhman.org/blog/2009/12/16/installing-hudson-phing-phpunit-and-git-ubuntu – wimvds