Ich habe mich gefragt, ob jemand, der Erfahrung mit diesen beiden Dingen hat, etwas Licht auf den signifikanten Unterschied zwischen den beiden werfen kann, wenn überhaupt?
Gibt es eine bestimmte Stärke, die es für einen bestimmten Fall geeignet macht?
Antworten:
Diese Frage ist ziemlich veraltet, aber da es immer noch Verkehr und Antworten gibt, sage ich hier noch einmal meinen Standpunkt, obwohl ich es bereits bei einigen anderen (neueren) Fragen getan habe.
Ich bin wirklich sehr verblüfft, dass SimpleTest immer noch als Alternative zu phpunit angesehen wird. Vielleicht bin ich nur falsch informiert, aber soweit ich gesehen habe:
web interface to phpunit tests
.Ich habe noch kein Argument für SimpleTest gesehen. Die Installation ist nicht einmal einfacher, da PHPUnit über pear erhältlich ist:
und der "erste Test" sieht ziemlich gleich aus.
Ab
PHPUnit 3.7
es ist noch einfacher zu installieren es nur durch die Verwendung vonPHAR Archive
oder für Windows einfach das Phar herunterladen und ausführen:
oder wenn Sie den unterstützten Composer verwenden, installieren Sie Möglichkeiten wie
an Ihren composer.json.
Für alles, was Sie testen möchten, wird PHPUnit eine Lösung haben und Sie werden praktisch überall Hilfe finden können (SO, #phpunit irc channel auf freenode, so ziemlich jeder PHP-Entwickler;))
Bitte korrigieren Sie mich, wenn ich etwas falsch angegeben oder etwas vergessen habe :)
Übersicht über PHP-Testtools
Video: http://conference.phpnw.org.uk/phpnw11/schedule/sebastian-bergmann/
Folien: http://www.slideshare.net/sebastian_bergmann/the-php-testers-toolbox-osi-days-2011
Es erwähnt Dinge wie Atoum, die sich selbst nennen: "Ein einfaches, modernes und intuitives Unit-Testing-Framework für PHP!"
Vollständige Offenlegung
Ich habe diese Antwort ursprünglich im Januar 2011 geschrieben, als ich mit keinem PHP-Testprojekt verbunden war. Seitdem habe ich einen Beitrag zu PHPUnit geleistet.
quelle
include
Dies ist manchmal viel schwieriger als nur die SimpleTest-PHP-Dateien (wie andere erklärt haben). für die professionellen Programmierer , ihre eigene Testumgebung PHPUnit Gebäude heraus klingt schwer zu schlagen , aber wenn ein Testsystem in einen PHP-basierten Open-Source - app , wo die Integration von „Entwickler“ für die App können im besten Fall sein (was ich) „beruflicher Programmierer“ dann Die Einfachheit von SimpleTest hat für mich jedenfalls einen echten Reiz. FWIW.Ich bevorzuge jetzt PHPUnit, aber als ich anfing, habe ich SimpleTest verwendet, da ich nicht immer Zugriff auf die Befehlszeile hatte. SimpleTest ist nett, aber das einzige, was es wirklich über PHPUnit hat, ist meiner Meinung nach der Web-Runner.
Die Gründe, warum ich PHPUnit mag, sind, dass es in andere PHP-Entwicklertools wie Phing (wie SimpleTest), phpUnderControl und Xinc integriert ist . Ab Version 3.0 wird es spöttisch unterstützt, wird aktiv weiterentwickelt und die Dokumentation ist ausgezeichnet.
Die einzige Möglichkeit, diese Frage für sich selbst zu beantworten, besteht darin, beide eine Zeit lang auszuprobieren und herauszufinden, welche besser zu Ihrem Stil passt.
BEARBEITEN: Phing lässt sich jetzt auch in SimpleTest integrieren.
quelle
Ich konnte jedoch leicht verstehen, wie SimpleTest installiert wird.
(Soweit ich mich erinnern kann, sagten die Anweisungen für PHPUnit etwas in der Art von "Installiere es über PEAR und wir werden keine Anweisungen geben, wie es anders gemacht wird") siehe:
Für Simple , laden Sie es einfach und es aus dem Code verweisen.
Also hat Simpletest für mich gewonnen.
quelle
Baphled hat einen schönen Artikel über SimpleTest vs PHPUnit3 .
quelle
Die Hälfte der genannten Punkte in der akzeptierten Antwort ist einfach nicht wahr:
SimpleTest hat
Der Nachteil:
quelle
Ich fand, dass SimpleTest noch einfacher als PHPUnit einzurichten war. Extrahieren Sie es einfach und Sie können loslegen. Dies hat den Vorteil, dass Sie auf mehr als einem Computer arbeiten, da Sie das gesamte Testframework auf dieselbe Weise wie Ihren Quellcode speichern können und somit wissen, dass Sie denselben Frameworkcode verwenden. Vor allem, wenn Sie es in irgendeiner Weise ändern.
Daher würde ich sagen, dass eine Stärke von SimpleTest darin besteht, dass es sehr leicht und tragbar ist.
SimpleTest wird auch mit einer sehr einfachen HTML-GUI geliefert, die bei Bedarf recht einfach zu erweitern ist. Soweit ich weiß, enthält PHPUnit keine HTML-GUI, es stehen jedoch GUI-Dateien zum Herunterladen zur Verfügung, z. B. Cool .
quelle
Nun, ich habe einen webbasierten Testfall-Runner für phpUnit erstellt und ihn auf sourceforge verfügbar gemacht. Verwendet Ajax und hat auch eine ziemlich coole Oberfläche, wenn Sie es ausprobieren möchten, überprüfen Sie es bei SourceForge. Der Projektname lautet phpunitwebui und die Website lautet http://phpunitwebui.sourceforge.net/
quelle
Wie bereits erwähnt, ist dies meistens eine bevorzugte Wahl, da beide die Tests ausführen, die Sie dafür schreiben, und die Ergebnisse zurückmelden.
Die Simpletest-Web-Benutzeroberfläche ist sehr nützlich, kann aber manchmal auch umständlich werden. In meinem aktuellen Projekt hätte ich mehr Arbeit in ein System stecken müssen, damit meine Anwendung (eine API) mit der Weboberfläche funktioniert (Apache korrekt einrichten, Dateien in das Stammverzeichnis public_html kopieren usw.), als dies der Fall gewesen wäre um einfach phpunit vom Eclipse-Arbeitsbereich aus auszuführen. Deshalb wähle ich PHPUnit. Auch die Verwendung von PEAR war ein großes Plus, da Sie Updates nicht manuell verfolgen müssen. Einfach ab und zu ausführen
pear upgrade
und PHPUnit wird auf dem neuesten Stand gehalten.quelle
Dies ist aus der Sicht eines sehr gelegentlichen PHP-Entwicklers:
Ich brauchte zwei Tage, um PHPUnit zu verstehen, und versuchte hauptsächlich, unter Eclipse zu debuggen, das ich schließlich aufgab.
Ich habe zwei Stunden gebraucht, um Simpletest einschließlich Debugging unter Eclipse einzurichten.
Vielleicht werde ich in Zukunft die Mängel von Simpletest finden, aber bisher macht es gut, was ich brauche: TestClasses, Mock-Objekte, Testcode-Debugging und Webinterface für eine schnelle Momentaufnahme der Situation.
Nochmals: Dies aus der Sicht eines sehr gelegentlichen PHP-Benutzers (nicht einmal Entwickler :-)
quelle
Ich habe Simple Test eine Weile nicht überprüft, das letzte Mal hatte es ein Eclipse-Plugin, was ein wichtiger Faktor für mich ist, aber es wurde lange nicht aktualisiert. Sebastian Bergmann arbeitet immer noch sehr aktiv an PHPUnit, aber es fehlt immer noch ein gutes Plugin für Eclipse - aber es ist für das neue Zend Studio enthalten.
quelle
Diese Frage ist alt, aber ich möchte meine Erfahrung hinzufügen: PHPUnit scheint jetzt der Standard zu sein, aber wenn Sie mit einem Legacy-System arbeiten, das viele, viele globale Variablen verwendet, können Sie von Anfang an stecken bleiben. Es scheint, als gäbe es keine gute Möglichkeit, Tests mit globalen Variablen in PHPUnit durchzuführen. Sie müssen Ihre Variablen anscheinend über $ GLOBALS festlegen, was NICHT GUT ist, wenn Sie Tonnen von Dateien haben, die überall globale Variablen festlegen. OK, einige mögen sagen, dass das Problem im Legacy-System liegt, aber das bedeutet nicht, dass wir auf einem solchen System keine Tests durchführen können. Mit SimpleTest ist so etwas einfach. Ich nehme an, wenn PHPUnit es uns erlaubt, eine Datei global und nicht in einen Klassen- / Funktionsbereich aufzunehmen, wäre dies ebenfalls kein allzu großes Problem.
Eine andere vielversprechende Lösung ist http://www.enhance-php.com , sieht gut aus :)
quelle
<phpunit backupGlobals="false">
in der Konfiguration XML verwendet und hatte nie Probleme mit Globals in Tests ...global $xxx
und alle ihre Kombinationen ausprobiert, bevor--no-globals-backup
ich versucht habe und plötzlich alle gesehen habe wie erwartet arbeiten. : DWenn es Tausende Funktionen gibt, die auf einmal getestet werden müssen, ist phpunit der richtige Weg. Ein einfacher Test ist nicht ausreichend, da er webbasiert ist.
Ich benutze immer noch einfaches Web für kleine Tests.
Aber beide sind gut
quelle