ich einen PHP MVC-Framework mit mehreren ‚Anwendungen‘ unter diesem System habe die OrganisationPHPUnit: Mehrere Bootstraps oder XML-Dateien?
\project\apps\app1\
\project\apps\app2\
\project\apps\shared\
Jede Anwendung meint es ist eigener Satz von Controllern
\project\apps\app1\controllers\FooContoller.php
\project\apps\app2\controllers\FooContoller.php
\project\apps\shared\controllers\BarContoller.php
Ich mag würde einrichten können haben geht PHPUnit Testraum, um jedes der Anwendungsverzeichnisse testen zu können, aber ich hoffe, es auf die "beste" Art und Weise zu tun.
Das Setup von PHPUnit ist wie:
\project\PHPUnit
\project\PHPUnit\phpunit.xml
\project\PHPUnit\apps\app1\bootstrap.php
\project\PHPUnit\apps\app1\controllers
\project\PHPUnit\apps\app1\controllers\FooControllerTest.php
\project\PHPUnit\apps\app2\bootstrap.php
\project\PHPUnit\apps\app2\controllers
\project\PHPUnit\apps\app2\controllers\FooControllerTest.php
Jetzt ist hier die Frage: Was ist die "best practice" Art und Weise meine phpunit.xml Dateien zu konfigurieren?
So wie es aussieht, habe ich versucht, beide Anwendungen als eigene Testsuite in die XML-Datei aufzunehmen, aber ich stolperte ziemlich schnell in eine "Klasse kann nicht redeclare: FooController".
Meiner Meinung nach, wäre die ideale Situation, um die XML so zu konfigurieren, dass alle Tests für app1 lief dann wurde Gedächtnis ‚gelöscht‘ und alle Tests wurden für app2 laufen.
Es kann jedoch sein, dass es in Bezug auf die beste Vorgehensweise am besten ist, mehrere XML-Dateien zu haben, eine für jede APP. (Dann vielleicht eine Charge/Shell Datei einen „Test all“ oder Test X laufen)
Wenn wir in einer ‚typischen‘ aussehen PHPUnit XML-Konfigurationsdatei:
<phpunit bootstrap="./apps/app1/bootstrap.php" colors="true">
<testsuite name="App1TestSuite">
<directory>./</directory>
</testsuite>
<filter>
<whitelist>
<directory suffix=".php">./apps/app1/controllers/</directory>
<directory suffix=".php">./apps/shared/</directory>
</whitelist>
</filter>
<logging>
<log type="coverage-html" target="./log/report.html" charset="UTF-8"
yui="true" highlight="true"
lowUpperBound="50" highLowerBound="80"/>
<log type="testdox-html" target="./log/testdox.html" />
</logging>
</phpunit>
Soll ich mit vielen von ihnen gehen ? Oder sollte ich das Tag hinzufügen und alle Dateien Setups in einer einzigen XML-Konfiguration kombiniert haben.
Wenn das beste Verfahren 'Einzelkonfiguration' ist ... weiß jemand, wie Sie mehrere 'Bootstraps' aktivieren können? Da jede APP mit leicht unterschiedlichen globalen Variablen geladen wird und einige leicht unterschiedliche Versionen der gleichnamigen Klassen laden, wäre es notwendig, alles zu löschen und neu zu starten.
Ich bin daran interessiert, das "optimale" System für den Test von Anfang an zu bauen, aber habe offensichtlich ein paar Löcher in meinem Wissen.
Leider: SI denken mit minimaler Entwicklung auf phpunit Gruppen könnte dieses Problem leicht gelöst werden .. . – inf3rno