Tools für Unit-Tests in Magento


23

Was verwenden Sie für Unit-Tests in Magento? Oder was wissen Sie über Unit Testing und Magento? Unabhängig davon, ob Sie TDD durchführen oder nur Unit-Tests für Ihre Projektkomponenten durchführen möchten, benötigen Sie hierfür einige Tools.

Der erste grundlegende Ansatz ist die Verwendung von Phpunit, aber es gibt Dinge, die zusätzliche Gimmicks benötigen, um Magento "testbar" zu machen.

Alles, womit ich gearbeitet habe, hat mit phpunit zu tun:

Gibt es noch andere Möglichkeiten?

Antworten:


14

Testen Sie PHPSpec mit MageSpec, wenn Sie etwas möchten, das nicht auf PHPUnit, sondern auf Magento-Integration basiert. Es ist verwendbar, aber nicht nur für die Hauptsendezeit bereit. Zum Verspotten verwendet PHPSpec 2 Prophecy (was großartig ist), mag aber keine magischen Getter und Setter. Aus diesem Grund ist es besser, stattdessen Mockery zu verwenden, was gut funktioniert (und ich mag es auch sehr).

Dann gibt es noch Behat mit BehatMage für BDD mit Magento. Ein Blick lohnt sich, aber es schlägt beispielsweise fehl, wenn Sie verschiedene Geschäftsansichten auf verschiedenen Domänen testen möchten.

Es gibt auch eine Erweiterung zu BehatMage namens MageBehat (schreckliche Benennung!), Die aus einem Hackathon hervorgegangen ist. BehatMage bietet eine Menge Magento-spezifischer Aktionen, aber um ehrlich zu sein, sind einige der verwendeten Problemumgehungen eher ein Hack als echte Lösungen für die zugrunde liegenden Probleme. Trotzdem ist es verwendbar.

Ich hoffe, dass beide Projekte - MageSpec und BehatMage - in Zukunft florieren werden.


Vielen Dank, dass Sie Vinai für Ihre Antwort. Ich kenne BehatMage und die Arbeit, die das Team von Inviqa / Session Digital geleistet hat (mir ist die Unternehmensstruktur unklar) ... Ich habe nur nach Phpunit gesucht, Behat / BehatMage, es ist nicht so ansprechend für mich, ich habe damit gespielt MageSpec vor einer Weile.
FlorinelChis

Englisch ist nicht meine Muttersprache, die von mir angegebenen Details hätten klarer sein können. Ich recherchiere für die London Magento User Group - December Meetup.
FlorinelChis


3

Sie sollten mit EcomDev PHPUnit gehen .

Ich persönlich bin der Meinung, dass alle Magento-Entwickler nach einer einheitlichen Unit-Testing-Lösung streben sollten. EcomDev bietet das am häufigsten verwendete und ausgereifteste dieser Frameworks, sodass Sie bereits über einen anständigen Pool an Entwicklern mit entsprechender Erfahrung verfügen. Die Verwendung eines einzelnen Frameworks reduziert auch die Notwendigkeit, eine Milliarde verschiedener Frameworks zu installieren.

EcomDev PHPUnit hat jedoch die seltsame Konvention, Tests direkt neben dem Produktionscode zu platzieren. Glücklicherweise kann dies durch Ändern einiger Codezeilen einfach behoben werden. EcomDev nimmt sich auch die Zeit für Updates (obwohl ihr Github-Repo Anzeichen von Aktivität zeigt, sind sie also eindeutig noch am Leben).


Gibt es also irgendwo ein Repo mit einer Reihe definierter Komponententests (unter Verwendung von ecomdev_unittest), die die Kernfunktionalität testen? (Ich weiß, dass MTAF dies tut, aber gibt es irgendwo vordefinierte Unit-Tests?)
ProxiBlue

1
@ProxiBlue Nein, es gibt keine, die mir bekannt sind. Das ist jedoch eine ziemlich gute Idee für ein Gemeinschaftsprojekt.
Thai Phan

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.