SimpleTest vs PHPunit

je me demandais si quelqu'un qui a de l'expérience dans ces deux choses peut nous éclairer sur la différence significative entre les deux, s'il y en a?

une résistance spécifique de chacun qui le rend adapté à un cas spécifique?

126
demandé sur Jens A. Koch 2008-08-29 14:08:06

12 réponses

cette question est tout à fait datée, mais comme elle reçoit encore du trafic et des réponses, je bien que je précise mon point ici encore, même si je l'ai déjà fait sur d'autres (plus récents) questions.

je suis vraiment vraiment dérouté que SimpleTest still est considéré comme une alternative à phpunit. Peut-être suis-je simplement mal informé, mais d'après ce que j'ai vu:

  • PHPUnit est le standard; la plupart des Framework l'utilisent (comme Zend Framework (1&2), Cake, Agavi, même Symfony laisse tomber son propre Framework dans Symfony 2 pour phpunit).
  • PHPUnit est intégré dans chaque IDE PHP (Eclipse, Netbeans, Zend Stuide, PHPStorm) et fonctionne bien.
  • Simpletest a une extension eclipse pour PHP 5.1(A. K. A. vieux) et rien d'autre.
  • PHPUnit fonctionne très bien avec chaque serveur d'intégration continue car il produit tous les standards enregistrez les fichiers pour la couverture du code et les rapports d'essai.
  • Simpletest ne le fait pas. Bien que ce ne soit pas un gros problème pour commencer avec elle vous mordra beaucoup une fois que vous arrêtez "juste de tester" et commencer à développer des logiciels (Oui que la déclaration est provocante :) ne le prenez pas trop au sérieux).
  • PHPUnit est activement maintenu, stable et fonctionne très bien pour chaque base de code, chaque scénario et chaque façon que vous voulez écrire vos tests.
  • (Subjective) PHPUnit fournit beaucoup plus agréable des rapports de couverture de code que Simpletest
  • avec PHPUnit vous obtenez également ces rapports à l'intérieur de votre IDE ( Netbeans , Eclipse, ...)
  • Il ya aussi un couple de suggestions pour un web interface to phpunit tests .

Je n'ai encore vu aucun argument en faveur de SimpleTest. Il n'est même pas plus simple à installer puisque PHPUnit est disponible via pear:

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

et le "premier test" ressemble à peu près la même.

à partir de PHPUnit 3.7 c'est encore plus facile à installer il en utilisant simplement le PHAR Archive

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

ou pour windows juste téléchargement le phar et l'exécution:

php phpunit-.phar

ou lors de l'utilisation de la pris en charge compositeur installer façons

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

à votre compositeur.json.


pour tout ce que vous voulez tester PHPUnit aura une solution et vous serez en mesure de trouver de l'aide à peu près n'importe où (donc, # PHPUnit canal irc Sur freenode, à peu près tous les développeurs php;))

s'il vous plaît corrigez-moi si j'ai dit quelque chose de mal ou oublié quelque chose:)

Présentation de PHP, les outils de Test

Video: http://conference.phpnw.org.uk/phpnw11/schedule/sebastian-bergmann /

dias: http://www.slideshare.net/sebastian_bergmann/the-php-testers-toolbox-osi-days-2011

il mentionne des choses comme Atoum qui appelle son soi: "un simple, moderne et intuitif cadre de test d'unité pour PHP!"


Full disclosure

j'ai à l'origine écrit cette réponse Jan. 2011 où je n'avais aucune affiliation avec un projet de test PHP. Depuis lors je suis devenu un contributeur à PHPUnit.

87
répondu edorian 2017-05-23 12:34:31

je préfère PHPUnit maintenant, mais quand j'ai commencé, J'ai utilisé SimpleTest car je n'avais pas toujours accès à la ligne de commande. SimpleTest est agréable, mais la seule chose qu'il a vraiment sur PHPUnit, à mon avis, est le web runner.

les raisons pour lesquelles J'aime PHPUnit sont qu'il s'intègre avec d'autres outils de développement PHP tels que phing (comme le fait SimpleTest), phpuncontrol , et Xinc . À partir de la version 3.0 a moqueur de soutien, est activement développée, et la documentation est excellente.

vraiment la seule façon de répondre à cette question pour vous-même est d'essayer à la fois pour un temps, et de voir ce qui correspond le mieux à votre style.

EDIT: Phing s'intègre désormais avec SimpleTest.

34
répondu Eric Scrivner 2011-10-01 22:30:14
  • Je ne pouvais pas comprendre comment télécharger et installer PHPUnit.
  • cependant, je pouvais facilement comprendre comment installer SimpleTest.

    (pour autant que je me souvienne des instructions pour PHPUnit dit quelque chose comme " installez-le via PEAR et nous ne donnerons pas d'instructions sur la façon de le faire d'une autre manière") voir:

  • http://www.phpunit.de/manual/current/en/installation.html

pour SimpleTest , il suffit de télécharger et de pointer vers elle à partir de votre code.

si Simplet a gagné pour moi.

17
répondu stfan 2009-11-18 03:34:05

Baphled a un bel article sur SimpleTest vs PHPUnit3 .

12
répondu neu242 2009-05-02 13:41:21

la moitié des points mentionnés dans la réponse acceptée ne sont tout simplement pas vrais:

SimpleTest

  • le plus facile d'installation (extrait de dossier, comprennent et run)
  • vérifiez simplement le dossier dans le contrôle de version (essayez de le faire avec phpunit de nos jours:)
  • moins de dépendances et beaucoup d'extensions (webtester, formtester, auth)
  • un bon reporter de couverture de code, qui est facile à étendre (points, noms de fonction, couleurs)
  • une couverture de code résumé (finalement atterri dans PHPUnit 4.x)
  • un web décent coureur et un ajax web runner, avec des groupes et unique fichier exécutions
  • encore meilleur outil de diff (sans problèmes d'espace ou de newline)
  • un adaptateur / enveloppeur pour faire fonctionner SimpleTests par phpUnit et vice versa
  • est activement maintenu sur GitHub: https://github.com/simpletest
  • Compatibilité
  • PHP5.4 +

le revers de La médaille:

  • pas de standard de l'industrie (PHPUnit)
11
répondu Jens A. Koch 2016-01-22 15:59:53

J'ai trouvé SimpleTest était encore plus facile que PHPUnit à installer. Il suffit de l'extraire et vous êtes prêt à aller. Un avantage de ceci est que vous travaillez sur plus d'une machine, puisque vous pouvez stocker l'ensemble du framework de test de la même manière que votre code source, et ainsi savoir que vous utilisez le même CODE framework. Surtout si vous les modifiez en aucune façon.

donc, je dirais qu'une force de SimpleTest est qu'il est très léger et portable.

SimpleTest est également livré avec une interface graphique HTML très simple, qui est assez facile à étendre si vous le souhaitez. Pour autant que je sache, PHPUnit n'inclut pas D'interface graphique HTML, mais il y a des interfaces graphiques disponibles au téléchargement, comme Cool .

7
répondu Erik Öjebo 2008-08-29 10:34:51

Eh bien j'ai fait un coureur de cas de test D'UI basé sur le web de phpUnit et l'ai rendu disponible sur sourceforge. Utilise ajax et a interface assez cool ainsi si vous voulez lui donner un coup de vérifier à sourceforge. Le nom du projet est phpunitwebui et le site web est http://phpunitwebui.sourceforge.net/

7
répondu 2009-06-16 23:03:34

comme il a été souligné, c'est surtout un choix de préférence, car les deux vont exécuter les tests que vous écrivez pour elle et de rendre compte des résultats.

L'interface web Simpletest est très utile, mais elle peut aussi devenir encombrante. Dans mon projet actuel, j'aurais dû mettre plus de travail dans un système pour faire fonctionner mon application (une API) avec l'interface web (configurer apache correctement, copier des fichiers à la racine public_html, etc.) qu'il aurait suffi d'exécuter phpunit à partir de l'éclipse de l'espace de travail. Donc je choisis de PHPUnit. En outre, L'utilisation de PEAR a été un grand plus puisque vous n'avez pas besoin de suivre manuellement les mises à jour. Il suffit d'exécuter pear upgrade de temps en temps et PHPUnit sera tenu à jour.

3
répondu T0xicCode 2010-12-26 17:38:56

Je n'ai pas vérifié Simple Test depuis un moment, la dernière fois il avait un plugin eclipse, qui est un facteur majeur pour moi, mais il n'a pas été mis à jour depuis longtemps. Sebastian Bergmann travaille encore très activement sur PHPUnit, mais il manque encore un bon plugin pour eclipse - mais il est inclus pour le nouveau Studio Zend.

1
répondu FrankS 2008-08-29 10:38:51

Cette question est ancienne, mais je veux ajouter mon expérience: PHPUnit semble être la norme maintenant, mais si vous travaillez avec un système d'héritage qui utilise beaucoup, beaucoup de variables globales, vous pouvez rester coincé de l'aller. Il semble qu'il n'y ait pas de bonne façon de faire des tests avec global vars dans PHPUnit, vous semblez avoir à configurer vos variables via $GLOBALS ce qui n'est pas bon si vous avez des tonnes de fichiers définissant des variables globales partout. OK certains diront que le problème est dans l'ancien système, mais qui cela ne signifie pas que nous ne pouvons pas faire des tests sur un tel système. Avec SimpleTest une telle chose est simple. Je suppose que si PHPUnit nous permet d'inclure un fichier globalement, pas dans le cadre d'une classe ou d'une fonction, alors ce ne serait pas un problème.

une Autre solution prometteuse est http://www.enhance-php.com , a l'air sympa :)

1
répondu mr1031011 2012-10-15 16:59:38

C'est du point de vue d'un développeur PHP très occasionnel:

il m'a fallu deux jours pour saisir PHPUnit, en essayant surtout de déboguer sous Eclipse que j'ai finalement abandonné.

il m'a fallu deux heures pour configurer Simpletest incluant debug sous Eclipse.

peut - être que je vais trouver les lacunes de Simpletest à l'avenir, mais jusqu'à présent il fait bien ce dont j'ai besoin: TestClasses, Mock objects, Test-Code debugging, et une interface web pour un rapide aperçu de la situation.

encore une fois: cela du point de vue d'un utilisateur PHP très occasionnel (pas même développeur :-)

1
répondu tru7 2017-01-30 18:09:53

quand il y a des milliers de fonctions à tester d'un seul coup, phpunit est une bonne chose, simple test est en train de tomber en panne car il est basé sur le web.

j'utilise encore web simple pour le test à petite échelle .

Mais les deux sont bons

-2
répondu user5454174 2015-10-16 14:19:42