Ich suche nach einer vollständigen Lösung für ein automatisiertes "Bauen" und Testen von PHP-Anwendungen. Ich stieß auf PhpUnderControl, eine Lösung zum Ausführen von automatisierten Anwendungs-Builds, die im Umfeld von Cruise Control erstellt wurden.
Leider ist PhpUC noch in den frühen Entwicklungsstadien und ich kann es nicht mit Windows-Box arbeiten.
Nach einigen Stunden des Versuchs gab ich phpUc auf. Ich versuche jetzt, Cruise Control allein zu verwenden. Es funktioniert gut, wenn es um den gesamten Build-Prozess geht. Jeder Befehl, den ich in die Build-Datei von Ameisen lege, läuft in Ordnung.
Das einzige Problem, das ich habe, ist, dass Cruise Control keine Protokolle von Run-Builds in die Projektprotokolldatei einfügt, daher kann ich keine Build-Ergebnisse sehen. Das Beispielprojekt in Cruise Control funktioniert jedoch einwandfrei. Protokolle für Builds werden in das Projektprotokoll eingefügt.
Ich frage mich, ob Cruise Control Protokolle, die mit PHPUnit (im XML-Format) erstellt wurden, in das Projektprotokoll einbinden kann oder ob es nur für Java-JUnit-Dateien funktioniert. Hat jemand versucht, Cruise Control allein in einem PHP-Projekt zu verwenden?
Hier ist der Log-Abschnitt der Projektkonfiguration (config.xml):
%Vor%Dies ist Kopieren-Einfügen + Pfade wurden aus dem Beispielprojekt von Cruise Control geändert.
Irgendwelche Gedanken, die irgendjemand bitte.
Danke
Ich frage mich, ob Cruise Control ist In der Lage, von PHPUnit erstellte Protokolle zusammenzuführen (im XML-Format) in das Projektprotokoll oder Es funktioniert für Java-JUnit-Dateien nur.
CC führt eine beliebige XML-Datei zusammen, auf die Sie verweisen. Wenn Sie sagen, dass das Zusammenführen der Dateien nicht funktioniert, erhalten Sie einen Fehler beim Zusammenführen der Dateien oder werden die Testergebnisse nicht auf der Ergebnisseite angezeigt? Wenn Sie sich die Build-Protokolldatei anschauen, sehen Sie, dass die Testergebnisse zusammengeführt wurden?
Ein Problem, das Sie möglicherweise sehen, ist, dass die .xsl-Dateien in der jsp-Berichterstellungsanwendung erwarten, dass die Testergebnisse in der Struktur enthalten sind, die die ant junit-Aufgabe erstellt. Was passieren könnte, ist, dass Sie die Dateien zusammenführen, aber die .xsl nicht weiß, wie die Ergebnisse angezeigt werden sollen.
Aber ich denke, es gibt eine einfache Lösung. Das PhpUnderControl-Projekt liefert eine phpunit.jsp. Ich denke, wenn Sie dies Ihrer bestehenden CC-Installation hinzufügen, können Sie die Testergebnisse anzeigen. Sie können die phpunit.jsp ziemlich einfach zu den Tabs hinzufügen; schau einfach auf main.jsp und es sollte offensichtlich sein.
Wenn Sie weitere Fragen haben, empfehle ich Ihnen die Benutzer-Mailingliste von CruiseControl
(Ich habe CC nicht in einem PHP-Projekt verwendet, aber ich bin einer der CC-Committer.)
phpunit, phpUnderControl und CC funktionieren großartig!
Um die Tests auf der Registerkarte (phpUnderControl mit CC) in der phpunit XML-Datei zu erhalten, vergewissern Sie sich, dass die erstellte phpunit-Protokolldatei den richtigen Pfad hat.
%Vor%Sobald die Datei logfile.xml aus phpunit generiert wurde, werden Tests in der Registerkarte tests von phpUnderControl und CC angezeigt.
Ich habe festgestellt, dass CruiseControl nur die Protokolle mit Testergebnissen zusammenführt, wenn ein Test fehlschlägt.
Wenn ich einen Test absichtlich abgebrochen habe, wurden die Ergebnisse in das Protokoll übernommen und im CruiseControl-Dashboard angezeigt.
Könnte das Ihr Problem sein?
Wir haben versucht, PHPUC mit CC zu verwenden und wir konnten nicht richtig arbeiten. Wir haben mit CC experimentiert, aber es war schwierig, eine Authentifizierung zu erhalten (wir sind verteilt, also wären unsere Berichte für die Welt offen, wenn wir sie nicht durchforsteten - wir konnten es nicht herausfinden.)
Wir verwenden jetzt Hudson als unsere CI-Engine und Phing als unser Build-Tool. Es funktioniert gut. Wir haben Code-Coverage-Berichte direkt aus PHPUnit (was Hudson immer noch "Clover-Coverage" von der Java-Welt nennt, aber hey, es ist nur ein Name eines Links und wir wissen, was es bedeutet).
Hudson war einfach einzurichten und scheint mit allem zu funktionieren, was Sie für PHP brauchen würden.
Tags und Links unit-testing php cruisecontrol