Magento 2: Wozu dient die Integrationstestfunktion?

8

Ich schreibe viele Integrationstests für Magento 2. Dies hilft meiner lokalen Entwicklung und sie passen gut in eine CI-Arbeitsweise.

Es gibt jedoch einige Besonderheiten bei der Integrationstestsuite von Magento. Zum Beispiel:

  • Standardmäßig werden alle Module aktiviert, und es gibt keine Möglichkeit, dies zu deaktivieren. Dies kann einige unerwünschte Nebenwirkungen haben, da Sie in einem Client-Projekt höchstwahrscheinlich Module deaktivieren, die Sie nicht benötigen, z. B. das Vertex-Modul. Dieses Modul fügt Ihrem Kundenmodell jedoch ein erforderliches Feld hinzu. Wenn Sie also in Ihrem Integrationstest einen Kunden erstellen , schlägt dieser Test fehl .
  • Es fügt Ihrer Codebasis Magento-Testmodule hinzu . Jedes Mal, wenn Sie Ihre Integrationstestsuite ausführen, befinden sich 3 zusätzliche Module in Ihrem app/code/MagentoNamespace.

Diese Probleme erschweren die Verwendung eines Integrationstests in einem lokalen Projekt. Jemand hat mir einmal gesagt, dass die Integrationstests nur für Erweiterungsentwickler erstellt wurden, um zu testen, ob Ihr Modul die Kriterien für den Markteintritt erfüllt. Ist das wahr? Denn wenn ja: Wie kann man dann Integrationstests für den Webshop Ihrer Kunden richtig schreiben? Ich mag die Magento-Anmerkungen und so. Wirklich frustrierend.

Giel Berkers
quelle

Antworten:

0

Ich fühle dich, ich habe / hatte die gleichen Probleme. Für Ihr erstes Problem gibt es eine Lösung: Entfernen Sie die unerwünschten Module, anstatt sie nur zu deaktivieren. Fügen Sie Ihrem composer.json Folgendes hinzu:

"replace": {
  "magento/module-admin-notification": "*"
},

Wenn Sie beispielsweise das Admin-Benachrichtigungsmodul entfernen möchten. Es wird in meinem Blog-Beitrag unter https://www.integer-net.com/removing-unused-core-modules-from-magento-2-the-right-way ausführlich erklärt .

In Bezug auf Ihren zweiten Punkt: Es handelt sich um einen Fehler, der unter https://github.com/magento/magento2/issues/12696 abgelegt wurde . Ich finde es auch sehr nervig. Soweit ich weiß, gibt es dafür noch keine gute Lösung, außer den Fehlerbericht zu kommentieren und ihn so den Kernentwicklern zur Kenntnis zu bringen.

Jemand hat mir einmal gesagt, dass die Integrationstests nur für Erweiterungsentwickler erstellt wurden, um zu testen, ob Ihr Modul die Kriterien für den Markteintritt erfüllt. Ist das wahr?

Nein, es ist auch auf Projektbasis sehr nützlich. Sie müssen sich nur um die von Ihnen genannten Probleme kümmern.

Andreas von Studnitz
quelle