Magento 2: Quelle est l'utilisation prévue de la fonctionnalité de test d'intégration?

8

J'écris beaucoup de tests d'intégration pour Magento 2. Cela aide mon développement local et ils s'intègrent bien dans une manière de travailler CI.

Cependant, la suite de tests d'intégration de Magento présente quelques bizarreries. Par exemple:

  • Il active tous les modules par défaut, et il n'y a aucun moyen de le désactiver. Cela peut avoir des effets secondaires indésirables, car sur un projet client, vous désactivez probablement les modules dont vous n'avez pas besoin, par exemple le module Vertex. Cependant, ce module ajoute un champ obligatoire à votre modèle client, donc inutile de dire que si vous créez un client dans votre test d'intégration, ce test échouera .
  • Il ajoute des modules de test Magento à votre base de code . Ainsi, chaque fois que vous exécutez votre suite de tests d'intégration, vous vous retrouvez avec 3 modules supplémentaires dans votre app/code/Magentoespace de noms.

Ces problèmes rendent difficile l'utilisation d'un test d'intégration dans un projet local. Quelqu'un m'a dit un jour que les tests d'intégration ne sont créés que pour que les développeurs d'extensions testent si votre module répond aux critères pour arriver sur le marché. Est-ce vrai? Parce que si c'est le cas, quelle est la meilleure façon d'écrire des tests d'intégration pour la boutique en ligne de vos clients? J'aime les annotations et les trucs de Magento. Vraiment frustrant.

Giel Berkers
la source

Réponses:

0

Je te sens, j'ai / eu les mêmes problèmes. Il existe une solution à votre premier problème: supprimez les modules indésirables au lieu de simplement les désactiver. Ajoutez ce qui suit à votre composer.json:

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

si vous souhaitez supprimer le module de notification administrateur par exemple. C'est expliqué en détail dans mon article de blog à https://www.integer-net.com/removing-unused-core-modules-from-magento-2-the-right-way .

Concernant votre deuxième point: c'est un bug, déposé sur https://github.com/magento/magento2/issues/12696 . Je trouve ça très ennuyeux aussi. Il n'y a pas encore de bonne solution pour autant que je sache, à part commenter le rapport de bogue et ainsi l'amener aux principaux développeurs.

Quelqu'un m'a dit un jour que les tests d'intégration ne sont créés que pour que les développeurs d'extensions testent si votre module répond aux critères pour arriver sur le marché. Est-ce vrai?

Non. C'est aussi très utile sur une base de projet. Vous n'avez qu'à vous occuper des problèmes que vous avez mentionnés.

Andreas von Studnitz
la source