代码之家  ›  专栏  ›  技术社区  ›  paan

SimpleTest与PHPnit

  •  128
  • paan  · 技术社区  · 17 年前

    我想知道,是否有人在这两方面都有经验,可以解释一下 重要的 两者之间是否存在差异?

    每种材料的具体强度是否使其适用于任何特定情况?

    12 回复  |  直到 7 年前
        1
  •  87
  •   Community Mohan Dere    9 年前

    这个问题已经过时了,但由于它仍然有流量和答案,我想我在这里再次陈述了我的观点,尽管我已经在其他一些(较新的)问题上做过了。

    我是 真的真的 困惑于SimpleTest 被认为是phpunit的替代品。也许我只是被误导了,但据我所知:

    • PHPUnit是标准;大多数框架都使用它(如Zend Framework(1&2)、Cake、Agavi,甚至Symfony也在Symfony 2中为phpunit放弃了自己的框架)。
    • PHPUnit集成在每个PHP IDE(Eclipse、Netbeans、Zend Stuide、PHPStorm)中,运行良好。
    • Simpletest有一个PHP 5.1的eclipse扩展(也称为旧版),没有其他扩展。
    • PHPUnit与每个持续集成服务器都能很好地工作,因为它输出代码覆盖率和测试报告的所有标准日志文件。
    • Simpletest没有。虽然一开始这不是一个大问题,但一旦你停止“只是测试”并开始开发软件,它就会给你带来很大的痛苦(是的,这句话很有挑衅性:)不要太当真)。
    • PHPUnit是积极维护的,稳定的,适用于每个代码库、每个场景和你想要编写测试的每种方式。
    • (主观) PHPUnit provides much nicer 代码覆盖率报告 than Simpletest
    • 使用PHPUnit,您还可以在IDE中获得这些报告( Netbeans Eclipse。..)
    • 此外,还有一些建议 web interface to phpunit tests .

    我还没有看到任何支持SimpleTest的论点。安装起来并不简单,因为PHPUnit可以通过pear获得:

    pear channel-discover pear.phpunit.de
    pear install phpunit/PHPUnit
    

    “第一次测试”看起来几乎一样。

    截至 PHPUnit 3.7 it is 的常用口语形式 更易于安装 只需使用 PHAR Archive

    wget http://pear.phpunit.de/get/phpunit.phar
    chmod +x phpunit-3.7.6.phar
    

    或者仅适用于windows downloading 法老和奔跑:

    php phpunit-.phar
    

    或者在使用时 supported composer install 方式像

    "require-dev": {
        "phpunit/phpunit": "3.7.*"
    }
    

    到你的composer.json。


    对于所有你想测试的东西,PHPUnit都有一个解决方案,你几乎可以在任何地方找到帮助(例如,freenode上的#PHPUnit-irc频道,几乎每个php开发人员都可以;)

    如果我说错了什么或忘了什么,请纠正我:)

    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的贡献者。

        2
  •  34
  •   Eric Scrivner    14 年前

    我现在更喜欢PHPUnit,但当我开始使用SimpleTest时,我并不总是可以访问命令行。SimpleTest很好,但在我看来,它真正超越PHPUnit的唯一东西是web运行器。

    我喜欢PHPUnit的原因是它可以与其他PHP开发工具集成,例如 phing (SimpleTest也是如此), phpUnderControl ,以及 Xinc 从3.0版本开始 has mocking 支持,正在积极开发中,文档非常出色。

    真正为自己回答这个问题的唯一方法是尝试两种方法一段时间,看看哪种更适合你的风格。

    编辑:Phing现在也与SimpleTest集成。

        3
  •  17
  •   stfan    16 年前

    简单测试 ,只需下载它并从代码中指向它。

    所以Simpletest为我赢了。

        4
  •  12
  •   neu242    17 年前

    公认答案中提到的一半观点根本不正确:

    SimpleTest

    • 更简单的设置(提取到文件夹,包含并运行)
    • 只需将文件夹签入版本控制(现在尝试使用phpunit:)
    • 更少的依赖性和大量的扩展(webtester、formtester、auth)
    • 一个好的代码覆盖率报告器,易于扩展(点、函数名、颜色)
    • 代码覆盖率摘要(最终在PHPUnit4.x中发布)
    • 一个不错的web运行器和一个ajax web运行器,具有组和单文件执行功能
    • 更好的diff工具(没有空格或换行问题)
    • 一个适配器/包装器,用于通过phpUnit运行SimpleTests,反之亦然
    • 兼容性PHP5.4+

    缺点:

    • 非行业标准(PHPUnit)
    • 未积极维护
        5
  •  11
  •   Jens A. Koch    10 年前

    Baphled有一篇很好的文章 SimpleTest vs PHPUnit3 .

        6
  •  7
  •   Erik Öjebo    17 年前

    我发现SimpleTest比PHPUnit更容易设置。只要把它拔出来,你就可以走了。这样做的好处是,如果您在多台机器上工作,因为您可以以与源代码相同的方式存储整个测试框架,从而知道您正在使用相同的框架代码。特别是如果你以任何方式修改它。

    所以,我想说SimpleTest的优点是它重量很轻,便于携带。

    SimpleTest还附带了一个非常简单的HTML GUI,如果你想扩展的话,很容易扩展。据我所知,PHPUnit不包括HTML GUI,但有GUI可供下载,例如 Cool .

        7
  •  7
  •   Popescu Valentin    17 年前

    我制作了一个基于phpUnit web的UI测试用例运行器,并将其发布在sourceforge上。它使用ajax,如果你想试试看,它的界面也很酷。项目名称是phpunitwebui,网站是 http://phpunitwebui.sourceforge.net/

        8
  •  3
  •   T0xicCode    15 年前

    正如已经指出的那样,这主要是一种偏好选择,因为两者都会运行你为它编写的测试并报告结果。

    Simpletest web UI非常有用,但有时也会变得很麻烦。在我当前的项目中,为了使我的应用程序(API)与web界面一起工作(正确设置apache、将文件复制到public_html根目录等),我必须在系统中投入更多的工作,而不是简单地从eclipse工作区运行phpunit。因此,我选择了PHPUnit。此外,使用PEAR是一个很大的优势,因为您不需要手动跟踪更新。只需奔跑 pear upgrade 每隔一段时间,PHPUnit就会保持最新状态。

        9
  •  1
  •   FrankS    17 年前

    这是一个非常随意的PHP开发人员的观点:

    我花了两天时间才掌握PHPUnit,主要是尝试在Eclipse下进行调试,最终我放弃了。

    我花了两个小时在Eclipse下设置Simpletest,包括调试。

    也许我将来会发现Simpletest的不足,但到目前为止,它很好地满足了我的需求:TestClasses、Mock对象、测试代码调试和web界面,可以快速了解情况。

    再一次: 从一个非常随意的PHP用户的角度来看 (甚至不是开发者:-)

        10
  •  1
  •   mr1031011    13 年前

    我有一段时间没有检查Simple Test了,上次它有一个eclipse插件,这对我来说是一个主要因素,但它已经很久没有更新了。 Sebastian Bergmann仍在积极开发PHPUnit,但它仍然缺乏一个很好的eclipse插件,但它已包含在新的Zend Studio中。

        11
  •  1
  •   tru7    9 年前

    这个问题很老了,但我想补充一下我的经验:PHPUnit现在似乎是标准的,但如果你使用一个使用大量全局变量的遗留系统,你可能会从一开始就陷入困境。在PHPUnit中似乎没有好的方法来使用全局变量进行测试,你似乎必须通过$GLOBALS设置变量,如果你有大量文件在各处设置全局变量,这是不好的。好吧,有些人可能会说问题出在遗留系统上,但这并不意味着我们不能在这样的系统上进行测试。使用SimpleTest,事情很简单。我想,如果PHPUnit允许我们全局地包含一个文件,而不是在任何类/函数范围内,那么这也不会是一个太大的问题。

    另一个有前景的解决方案是 http://www.enhance-php.com ,看起来不错:)

        12
  •  -2
  •   user5454174    10 年前

    当一次有数千个函数需要测试时,phpunit是不错的选择,简单的测试是不够的,因为它是基于web的。

    我仍然使用简单的网络进行小规模测试。

    但两者都很好

    推荐文章