我想知道是否有任何在这两个方面都有经验的人可以阐明两者之间的显着差异(如果有的话)?
每种方法的任何特定优势使其适用于任何特定情况?
我想知道是否有任何在这两个方面都有经验的人可以阐明两者之间的显着差异(如果有的话)?
每种方法的任何特定优势使其适用于任何特定情况?
这个问题已经过时了,但由于它仍然有流量和答案,尽管我在这里再次陈述了我的观点,即使我已经在其他一些(较新的)问题上做了它。
我真的很困惑 SimpleTest仍然被认为是 phpunit 的替代品。也许我只是被误导了,但据我所知:
web interface to phpunit tests
.我还没有看到任何支持 SimpleTest 的论据。由于 PHPUnit 可通过 pear 获得,因此安装起来并不简单:
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
或者对于 Windows,只需下载phar 并运行:
php phpunit-.phar
或者当使用支持的作曲家安装方式时
"require-dev": {
"phpunit/phpunit": "3.7.*"
}
到你的 composer.json。
对于您想要测试的所有内容,PHPUnit 都会有一个解决方案,并且您几乎可以在任何地方找到帮助(SO,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 的贡献者。
我现在更喜欢 PHPUnit,但刚开始时我使用 SimpleTest,因为我并不总是可以访问命令行。SimpleTest 很好,但在我看来,它对 PHPUnit 真正拥有的唯一东西是 web 运行器。
我喜欢 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:s 可供下载,例如Cool。
好吧,我制作了一个基于 phpUnit Web 的 UI 测试用例运行程序,并在 sourceforge 上提供了它。使用 ajax 并且有非常酷的界面,如果你想试一试,请在 sourceforge 上查看。项目名称为 phpunitwebui,网址为http://phpunitwebui.sourceforge.net/
正如已经指出的那样,它主要是一种偏好选择,因为两者都会运行您为其编写的测试并报告结果。
Simpletest Web UI 非常有用,但有时也很麻烦。在我当前的项目中,我必须在系统中投入更多的工作才能使我的应用程序(API)与 Web 界面(正确设置 apache,将文件复制到 public_html 根目录等)一起工作。只需从 Eclipse 工作区运行 phpunit。因此我选择 PHPUnit。此外,使用 PEAR 是一大优势,因为您不需要手动跟踪更新。只需偶尔运行pear upgrade
一次,PHPUnit 就会保持最新。
这是从一个非常随意的 PHP 开发人员的角度来看的:
我花了两天时间掌握 PHPUnit,主要是尝试在 Eclipse 下调试,最终我放弃了。
我花了两个小时来设置 Simpletest,包括在 Eclipse 下调试。
也许将来我会发现 Simpletest 的不足之处,但到目前为止它已经很好地满足了我的需求:TestClasses、Mock 对象、测试代码调试和用于快速了解情况的 Web 界面。
再说一遍:这是从一个非常普通的 PHP 用户的角度来看的(甚至不是开发人员 :-)
好久没查过Simple Test了,上次有个eclipse插件,这对我来说是个主要因素,不过好久没更新了。Sebastian Bergmann 仍然非常积极地致力于 PHPUnit,但它仍然缺乏一个好的 eclipse 插件——但它包含在新的 Zend Studio 中。
这个问题很老,但我想补充一下我的经验:PHPUnit 现在似乎是标准,但是如果您使用使用大量全局变量的遗留系统,您可能会从一开始就陷入困境。在 PHPUnit 中似乎没有用全局变量进行测试的好方法,你似乎必须通过 $GLOBALS 设置你的变量,如果你有大量的文件在各处设置全局变量,那就不好了。好吧,有些人可能会说问题出在遗留系统上,但这并不意味着我们不能在这样的系统上进行测试。使用 SimpleTest 这样的事情很简单。我想如果 PHPUnit 允许我们在全局范围内包含一个文件,而不是在任何类/函数范围内,那么它也不会成为太大的问题。
另一个有前途的解决方案是http://www.enhance-php.com,看起来不错 :)
当有数千个函数要一次性测试时,phpunit 是一种方式,简单的测试由于它基于 web 而不足。
我仍在使用简单的网络进行小规模测试。
但是两个都不错