Question

Je me demandais si quelqu'un qui a de l'expérience dans ce genre de choses peut jeter quelque lumière sur la important la différence entre les deux si?

Toute la résistance spécifique de chacun qui le rend approprié pour un cas spécifique?

Était-ce utile?

La solution

Cette question est assez daté, mais comme il est encore obtenir le trafic et les réponses que j'ai si je déclare mon point ici encore, même si je l'ai déjà fait sur d'autres (les plus récents) questions.

Je suis vraiment vraiment déconcerté que SimpleTest encore est considéré comme une alternative à phpunit.Peut-être que je suis juste mal informés, mais aussi loin que j'ai vu:

  • PHPUnit est la norme;la plupart des cadres de l'utiliser (comme le Zend Framework (1&2), Gâteau, Agavi, même Symfony est l'abandon de leur propre Cadre de référence dans Symfony 2 pour phpunit).
  • PHPUnit est intégré dans chaque PHP IDE (Eclipse, Netbeans, Zend Stuide, PHPStorm) et fonctionne très bien.
  • Simpletest a une éclipse extension pour PHP 5.1 (un.k.un.vieux) et rien d'autre.
  • PHPUnit fonctionne très bien avec chaque serveur d'intégration continue, car il génère tous les fichiers journaux normaux pour la couverture de code et des rapports de test.
  • Simpletest ne le fait pas.Si ce n'est pas un gros problème pour commencer, il va vous mordre gros temps une fois que vous cessez de "juste tester" et de commencer à développer des logiciels (Oui cette déclaration est provocateur :) 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.
  • (Subjectif) PHPUnit fournit beaucoup plus agréable des rapports de couverture de code que Simpletest
  • Avec PHPUnit vous bénéficiez également de ces rapports à l'intérieur de votre IDE (Netbeans, Eclipse, ...)
  • Il ya aussi un couple de suggestings pour un web interface to phpunit tests.

Je n'ai pas encore tout argument en faveur de SimpleTest.Il n'est même pas le plus simple à installer, car PHPUnit est disponible via la poire:

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

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

Comme d' PHPUnit 3.7 c'est encore plus facile à installer en utilisant simplement l' PHAR Archive

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

ou pour windows seulement téléchargement le phar et en cours d'exécution:

php phpunit-.phar

ou lors de l'utilisation de la pris en charge compositeur installer la manière d'

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

pour votre compositeur.json.


Pour tout ce que vous voulez pour tester PHPUnit aura une solution et vous serez en mesure de trouver de l'aide de pratiquement n'importe où (DONC, #phpunit canal irc sur freenode, presque à chaque développeur php ;) )

Veuillez me corriger si j'ai dit quelque chose de mal ou vous avez oublié quelque chose :)

Présentation de PHP, les outils de Test

Vidéo: http://conference.phpnw.org.uk/phpnw11/schedule/sebastian-bergmann/

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

Il mentionne des trucs comme Atoum qui appelle sa de l'auto:"Un simple, moderne et intuitive infrastructure de tests unitaires pour PHP!"


La divulgation complète

J'ai écrit à l'origine de cette réponse Janv.2011 là où je n'avais aucune affiliation avec PHP, le projet de Tests.Depuis je suis devenu un contributeur de PHPUnit.

Autres conseils

Je préfère PHPUnit maintenant, mais quand j'ai commencé, j'ai utilisé SimpleTest que je n'ai pas toujours accès à la ligne de commande.SimpleTest est belle, mais la seule chose qu'il a vraiment plus de PHPUnit, à mon avis, c'est le web runner.

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

Vraiment la seule manière de répondre à cette question pour vous est d'essayer les deux pour un temps, et voir ce qui convient à votre style mieux.

EDIT:Phing s'intègre maintenant avec SimpleTest ainsi.

  • Je ne pouvais PAS comprendre comment télécharger et installer PHPUnit.
  • J'ai pu, cependant, de comprendre facilement comment installer SimpleTest.

    (Aussi loin que je me souvienne, les instructions pour PHPUnit dit quelque chose le long des lignes de "l'installer via la POIRE et de ne pas nous donner toutes instructions sur la façon de le faire d'une autre façon") voir:

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

Pour SimpleTest, il suffit de le télécharger et le point à partir de votre code.

Donc Simpletest a gagné pour moi.

Baphled a un bel article sur SimpleTest vs PHPUnit3.

La moitié des points mentionnés dans l'acceptation de réponse sont tout simplement pas vrai:

SimpleTest a

  • le plus facile d'installation (extrait de dossier, comprennent et exécuter)
  • il suffit de vérifier le dossier dans le contrôle de version (essayez de le faire avec phpunit de nos jours :))
  • moins de dépendances et de nombreuses extensions (webtester, formtester, auth)
  • une bonne couverture du code de la journaliste, qui est facile à étendre (les points, les 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 mieux outil de comparaison (avec pas d'espace ou saut de ligne problèmes)
  • un adaptateur/wrapper pour exécuter SimpleTests par phpUnit et vice versa
  • compatibilité PHP5.4+

Le revers de la médaille:

  • pas de norme de l'industrie (PHPUnit)
  • pas activement maintenu

J'ai trouvé SimpleTest est même plus facile que PHPUnit à mettre en place.Il suffit d'extraire et vous êtes bon pour aller.Un avantage de ceci est que si vous travaillez à plus d'une machine, puisque vous pouvez stocker l'ensemble de l'infrastructure de test de la même manière que votre code source, et donc de savoir que vous utilisez le même code de la structure.Surtout si vous les modifiez en aucune façon.

Donc, je dirais que l'une des forces de SimpleTest est qu'il est très léger et portable.

SimpleTest est également livré avec un très simple interface utilisateur graphique HTML, ce qui est assez facile à étendre, si vous le souhaitez.Autant que je sache, PHPUnit ne pas inclure une page HTML de l'interface, mais il y a GUI:s disponible pour le téléchargement, tels que Cool.

Bien j'ai fait un phpUnit basée sur le web INTERFACE utilisateur de cas de test runner et mis à disposition sur le site de sourceforge.Utilise ajax et a assez cool interface ainsi, si vous souhaitez donner un coup de feu le vérifier sur sourceforge.Le nom du projet est phpunitwebui et le site est http://phpunitwebui.sourceforge.net/

Comme il a été fait, c'est surtout une préférence de choix, car les deux vont exécuter les tests de vous écrire pour elle et de faire rapport des résultats.

Simpletest l'INTERFACE web est très utile, mais il peut aussi parfois lourd.Dans mon projet actuel, j'aurais dû mettre plus de travail dans un système pour rendre mon application (API) de travailler avec l'interface web (configurer apache correctement, copiez les fichiers à la public_html racine, etc.) ce qu'il en aurait été de simplement exécuter phpunit de l'éclipse de l'espace de travail.Donc je choisis de PHPUnit.Aussi, l'utilisation de la POIRE a été un gros plus car vous n'avez pas besoin de suivre manuellement les mises à jour.Exécutez simplement pear upgrade de temps en temps et PHPUnit doit être tenu à jour.

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

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 a pas de bonne façon de faire des tests avec les variables globales dans PHPUnit, vous semblez avoir à définir vos variables via $GLOBALS qui n'est PAS BON si vous avez des tonnes de fichiers de définir des variables globales partout.OK certains diront que le problème est dans l'ancien système, mais 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 à l'échelle mondiale, au sein de toute la classe/portée de la fonction, alors il ne serait pas trop un problème ainsi.

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

C'est à partir du point de vue d'une très décontracté développeur PHP:

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

Il m'a fallu deux heures pour l'installation de Simpletest y compris debug sous Eclipse.

Peut-être que je vais trouver le déficit de Simpletest dans l'avenir mais pour l'instant il fait bien ce dont j'ai besoin:TestClasses, les objets Fantaisie, test de débogage de code, et de l'interface web pour un aperçu rapide de la situation.

Nouveau: Ce qui, du point de vue d'une très décontracté PHP utilisateur (même pas développeur :-)

quand il y a des milliers de fonctions de test d'un seul coup, phpunit est de chemin à faire, un test simple est de tomber à court comme il basé sur le web.

Je suis toujours à l'aide de web simple pour essai à échelle réduite .

Mais les deux sont bons

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top