我想知道是否有人在这两个方面都有经验,可以阐明两者之间的显着差异(如果有)?
每个组件都有什么特定的强度,使其适合任何特定情况?
我想知道是否有人在这两个方面都有经验,可以阐明两者之间的显着差异(如果有)?
每个组件都有什么特定的强度,使其适合任何特定情况?
Answers:
这个问题已经过时了,但是由于它仍然在增加流量,并且回答了我,尽管我在这里再次陈述了我的观点,所以我已经在其他一些(较新的)问题上做了。
我真的很困惑,SimpleTest 仍然被认为是phpunit的替代品。也许我只是被误导了,但据我所知:
web interface to phpunit tests
。我还没有看到支持SimpleTest的任何论点。安装起来并不简单,因为可以通过pear获得PHPUnit:
pear channel-discover pear.phpunit.de
pear install phpunit/PHPUnit
和“首次测试”看起来几乎一样。
由于PHPUnit 3.7
它的安装更容易通过只使用它PHAR Archive
wget http://pear.phpunit.de/get/phpunit.phar
chmod +x phpunit-3.7.6.phar
或对于仅下载 phar并运行的Windows :
php phpunit-.phar
或使用受支持的作曲家安装方式时
"require-dev": {
"phpunit/phpunit": "3.7.*"
}
到您的composer.json。
对于您要测试的所有PHPUnit都会有一个解决方案,您几乎可以在任何地方找到帮助(因此,freenode上的#phpunit irc频道,几乎每个php开发人员都可以找到它;))
如果我说错了或忘记了一些,请指正:)
视频:http://conference.phpnw.org.uk/phpnw11/schedule/sebastian-bergmann/
幻灯片:http://www.slideshare.net/sebastian_bergmann/the-php-testers-toolbox-osi-days-2011
它提到了像Atoum这样的东西,它称之为自我:“一个简单,现代且直观的PHP单元测试框架!”
我最初是在2011年1月写这个答案的,当时我与任何PHP测试项目都不隶属。从那时起,我成为PHPUnit的贡献者。
include
读取SimpleTest .PHP文件要困难得多(正如其他人所解释的那样)。对于构建自己的测试环境的专业程序员而言,PHPUnit听起来很难被击败,但是如果将测试系统集成到基于PHP的开源应用程序中,那么该应用程序的“开发人员”充其量是(所谓的)“职业程序员”,那么无论如何,SimpleTest的简单性对我来说确实具有吸引力。FWIW。
我现在更喜欢PHPUnit,但是刚开始时我使用了SimpleTest,因为我并不总是可以访问命令行。SimpleTest很不错,但是在我看来,PHPUnit真正拥有的唯一东西就是网络运行器。
我喜欢PHPUnit的原因是它与其他PHP开发人员工具集成在一起,例如phing(SimpleTest也是如此),phpUnderControl和Xinc。从3.0版开始,它具有模拟支持,并且正在积极开发中,并且该文档非常出色。
真正为自己回答这个问题的唯一方法是同时尝试一下,看看哪种更适合您的风格。
编辑:Phing现在也与SimpleTest集成。
但是,我可以轻松地了解如何安装SimpleTest。
(据我所记得,PHPUnit的说明说的是“通过PEAR安装它,我们不会以任何其他方式给出任何说明”)。
对于SimpleTest,只需下载它并从您的代码中指向它即可。
所以Simpletest为我赢了。
Baphled在SimpleTest vs PHPUnit3上有一篇不错的文章。
公认答案中提到的一半要点是不正确的:
不足之处:
我发现SimpleTest甚至比PHPUnit更容易设置。只需提取它,您就可以开始了。这样的好处是,如果您在多台机器上工作,因为您可以以与源代码相同的方式存储整个测试框架,从而知道您使用的是相同的框架代码。特别是如果您以任何方式对其进行修改。
因此,我想说的是SimpleTest的优势在于它重量轻且可移植。
SimpleTest还附带了非常简单的HTML GUI,如果需要,可以很容易地对其进行扩展。据我所知,PHPUnit不包括HTML GUI,但是有可供下载的GUI :,例如Cool。
好吧,我制作了一个基于phpUnit Web的UI测试用例运行程序,并将其在sourceforge上可用。使用ajax并具有相当不错的界面,如果您想试一试,请在sourceforge上进行检查。项目名称为phpunitwebui,网站为http://phpunitwebui.sourceforge.net/
如前所述,这主要是一个优先选择,因为两者都将运行您为此编写的测试并报告结果。
最简单的Web用户界面非常有用,但有时也很麻烦。在我当前的项目中,我将不得不投入更多的工作来使我的应用程序(API)与Web界面(正确设置apache,将文件复制到public_html根目录等)一起使用。只需从Eclipse工作区运行phpunit。因此,我选择PHPUnit。另外,使用PEAR也是一大优势,因为您无需手动跟踪更新。只需pear upgrade
偶尔运行一次,PHPUnit就会保持最新状态。
这个问题很老,但是我想补充一下我的经验:PHPUnit现在似乎已经成为标准,但是如果您使用的是使用大量全局变量的旧系统,则可能一开始就陷入困境。似乎没有很好的方法来对PHPUnit中的全局变量进行测试,您似乎必须通过$ GLOBALS设置变量,如果您有无数文件在各处设置全局变量,那就太麻烦了。好的,有些人可能会说问题出在旧系统中,但这并不意味着我们无法在这种系统上进行测试。使用SimpleTest,这件事很简单。我想,如果PHPUnit允许我们在全局范围内包含文件,而不是在任何类/函数范围之内,那么它也不是太大的问题。
另一个有希望的解决方案是http://www.enhance-php.com,看起来不错:)
<phpunit backupGlobals="false">
在配置XML中使用过,在测试中对全局变量没有任何问题……
global $xxx
及其所有组合,然后尝试--no-globals-backup
并突然看到了所有按预期工作。:D