Ergebnis 1 bis 9 von 9

Thema: Contao 3.5.21 mit Composer und PHPUnit

  1. #1
    Contao-Nutzer
    Registriert seit
    04.11.2009.
    Beiträge
    111

    Standard Contao 3.5.21 mit Composer und PHPUnit

    Hallo zusammen,

    ich möchte gerne eine 3.5.21 mit PHPUnit testen. Daher die Frage, wie Ihr das normalerweise anstellt? Wie kann ich denn möglichst simpel einfach mit einer composer.json PHPUnit integrieren, um alle notwendigen Klassen zur Verfügung zu haben? Komme nicht ganz dahinter, wie sich nun Contao mit Composer stressfrei betreiben lässt. Muss dazu zwingend die Composer-Erweiterungsverwaltung installiert werden oder nicht?

    Vielleicht kann mich jemand in die richtige Richtung schubsen?

    Liebe Grüße

    Christian

  2. #2
    Contao-Urgestein Avatar von Toflar
    Registriert seit
    15.06.2009.
    Beiträge
    4.467
    Partner-ID
    8667
    User beschenken
    Wunschliste

    Standard

    Hi Christian,

    Contao 3.5 zu testen dürfte eine ziemlich mühsame Angelegenheit werden. Vieles in Contao 3.5 ist so gebaut, dass es quasi untestbar ist (Stichworte Vererbung und statische Methoden).
    Was genau möchtest du denn testen? Deinen eigenen Code?
    Contao Core-Entwickler @terminal42 gmbh
    Wir sind Contao Premium-Partner!
    Für Individuallösungen kannst du uns gerne kontaktieren.
    PS: Heute schon getrakked?

  3. #3
    Contao-Nutzer
    Registriert seit
    04.11.2009.
    Beiträge
    111

    Standard

    Hi Toflar,

    vielen Dank für Deine Antwort. Das hatte ich befürchtet, dass es schwierig wird. Wie aber ginge es denn im besten Falle, um zumindest ein paar Erweiterungen zu testen? Sonst muss ich wohl auf Integration Tests per DOMCrawler etc. zurückgreifen :-(.

    Und: Ist es denn mit Contao 4 dann besser?

  4. #4
    Contao-Urgestein Avatar von Toflar
    Registriert seit
    15.06.2009.
    Beiträge
    4.467
    Partner-ID
    8667
    User beschenken
    Wunschliste

    Standard

    Ja mit Contao 4 ist einiges besser. Viele Dinge werden nach und nach schöner gebaut was schon mal bedeutet, dass wir für einige Dinge nicht mehr unsere eigene Implementierung sondern Drittbibliotheken nutzen welchen entsprechend getestet und somit auch testbar sind. Natürlich bist du herzlich eingeladen, deinen Teil dazu beizutragen
    Ausserdem haben wir ein "Adapter-Konzept" eingeführt. Ein einfacher Wrapper, der den nicht statischen Aufruf von alten, statischen Methoden erlaubt.
    Siehe z.B.: https://github.com/contao/core-bundl...stener.php#L65
    Wie du siehst, geht es hier eigentlich um den Aufruf von `Frontend::indexPageIfApplicable()` welche sich nicht testen liesse, ohne diese Methode auch tatsächlich zur Verfügung zu stellen. Durch den Adapter lässt sich aber der Adapter selbst mocken und du kannst dann verschiedene Fälle testen.

    Du könntest natürlich das Adapter-Konzept für Contao 3.5 portieren und deinen Code so bauen, dass er eben diesen Adapter nutzt, aber ich weiss nicht ob sich der Aufwand lohnt. Ich habe es für Cotnao 4 eingeführt und schon da ca. 4x umgebaut
    Es ist also möglich, deinen gesamten Code mit Unit-Tests abzudecken. Es ist einfach ein bisschen einfacher in der 4 als in der 3.5.
    Und zusätzlich zu Unit Tests noch Integration bzw. Functional Tests sind sowieso immer sinnvoll :-)
    Contao Core-Entwickler @terminal42 gmbh
    Wir sind Contao Premium-Partner!
    Für Individuallösungen kannst du uns gerne kontaktieren.
    PS: Heute schon getrakked?

  5. #5
    Contao-Nutzer
    Registriert seit
    04.11.2009.
    Beiträge
    111

    Standard

    Hi Toflar,

    vielen Dank für Deine Ausführungen. Dann vorab nochmals eine Frage an Dich als erfahrener Contao-Entwickler: Wie steht es denn Deiner Einschätzung nach um die Einsetzbarkeit von Contao 4? Ist der Core produktiv verwendbar? Sind gängige Erweiterungen bereits portiert (EFG, MultiColumnWizard, ...)? Hast Du da eine grobe Antwort für mich.

    Denn sollte das produktiv sinnvoll sein, würde ich direkt auf Contao 4 gehen.

    Liebe Grüße und vielen Dank für die tollen Infos,

    Christian

  6. #6
    Contao-Urgestein Avatar von Toflar
    Registriert seit
    15.06.2009.
    Beiträge
    4.467
    Partner-ID
    8667
    User beschenken
    Wunschliste

    Standard

    Contao 4 ist längstens produktiv einsetzbar. Wir haben Contao 4 in etlichen Projekten eingesetzt und sind dadurch in der Lage Dinge zu realisieren, die mit Contao 3.5 eigentlich undenkbar wären. Die Frage ist nicht ob es einsetzbar ist, sondern ob du es kannst.
    Contao 4 ist ein reines Symfony Bundle und somit lädst du es zu deiner Symfony Applikation. Du musst also nicht nur verstehen, wie man mit Contao umgeht, sondern in der Lage sein eine Symfony Applikation zu verwalten. D.h. wenn du Entwickler bist und Symfony kennst, sollte es ein leichtes für dich sein, mit Contao 4 zu arbeiten.
    Insofern gelten also auch alle anderen Anforderungen an den Entwickler. D.h. Kenntnis über Deployment Tools, Composer etc. Alles was eben nicht Contao spezifisch ist und du auch kennen müsstest, wenn du eine Symfony Applikation ohne Contao 4 bauen würdest.

    Für die Contao 3.5-Erweiterungen haben wir einen BC-Layer gebaut. Ich würde behaupten 98% aller Module laufen dadurch auch in Contao 4, ohne grossartig angepasst zu werden.
    Isotope z.B. läuft unter der 4 auch und ich denke das darf man als Referenz sehen für ein relativ grosses 3.5 Modul.

    An einer "managed"-Version, die etwas vom Konfigurationsaufwand für Symfony-Apps übernehmen soll, arbeiten wir. Ist nur nicht so easy und unsere Freizeit beschränkt...
    Contao Core-Entwickler @terminal42 gmbh
    Wir sind Contao Premium-Partner!
    Für Individuallösungen kannst du uns gerne kontaktieren.
    PS: Heute schon getrakked?

  7. #7
    Contao-Nutzer
    Registriert seit
    04.11.2009.
    Beiträge
    111

    Standard

    Super. Danke.

    Dann wird es wohl Zeit für Contao 4 :-).

    Liebe Grüße

    Christian

  8. #8
    Maintainer Avatar von xtra
    Registriert seit
    02.07.2009.
    Ort
    Tuebingen
    Beiträge
    2.007
    User beschenken
    Wunschliste

    Standard

    In MetaModels und einigen CCA Modulen haben wir auch unit tests drin und deren Zahl steigt.
    Es ist aber so wie Toflar schon schrieb, Contao 3 ist so gut wie untestbar (Stichwort: tight coupling).

    Manches kann man jedoch machen, besonders wenn man den eigenen code gleich loose coupled schreibt und dann, aehnlich den Adaptern, die Singletons injected.

    Abgesehen davon ist es sinnvoll auf Contao 4 zu setzen und ggf. den Entwicklern der von dir eingesetzten Module dann einen PR fyr Contao 4 zu senden, dann profitieren alle davon.
    Bedenke stets: Wenn Du ungenaue oder unzureichende Angaben machst, so koennte dies die Bearbeitung deiner Frage endlos verzoegern (oder sogar dazu fyhren, dass ich zu viel nachdenken muss und die Antwort vergesse!). Kein Support per PN.

  9. #9
    legalstuff
    Gast

    Standard Composer Einstieg und den Umgang lernen??

    Hallo,
    auch ich habe so meine Probleme, das Thema Composer und die neue Vorgehensweise überhaupt zu verstehen.

    Hinzu kommen solche Berichte, wo ich dann eher Abstand nehme vom Composer.
    https://community.contao.org/de/show...nwizzard-nicht

    Für einen "nicht-programmierer" scheint es kaum verständlich wie man da überhaupt anfängt.
    Läuft nun alles über Github und Console beim Hoster??

    Wo gibt es eine wirklich Einsterigerfreundliche Anleitung für den Composer. Denn Suche hier im Forum, leider fehlanzeige.

    Danke wenn da jemand helfen könnte.


    UUps, ich sehe gerade, das ist ein reiner Entwickler Thread... da gehts um Chinesisch für mich.. *smile* sorry für mein Post.
    Geändert von legalstuff (18.01.2017 um 08:40 Uhr)

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •