Magento 2: Как предполагается использовать функциональность интеграционных тестов?

8

Я пишу множество интеграционных тестов для Magento 2. Это помогает моей локальной разработке, и они прекрасно вписываются в CI.

Тем не менее, есть некоторые странности в тесте интеграции Magento. Например:

  • По умолчанию все модули включены, и отключить это невозможно. Это может иметь некоторые нежелательные побочные эффекты, поскольку в клиентском проекте вы, скорее всего, отключаете ненужные вам модули, например модуль Vertex. Однако этот модуль добавляет обязательное поле в модель вашего клиента, поэтому нет необходимости говорить, что если вы создадите клиента в интеграционном тесте, этот тест не пройден .
  • Он добавляет тестовые модули Magento в вашу кодовую базу . Таким образом, каждый раз, когда вы запускаете свой комплект интеграционных тестов, вы получаете 3 дополнительных модуля в своем app/code/Magentoпространстве имен.

Эти проблемы затрудняют использование интеграционного теста в локальном проекте. Кто-то однажды сказал мне, что интеграционные тесты созданы только для разработчиков расширений, чтобы проверить, соответствует ли ваш модуль критериям для его выхода на рынок. Это правда? Потому что, если так: каков тогда правильный способ написания интеграционных тестов для интернет-магазина ваших клиентов? Мне нравятся аннотации Magento и прочее. Действительно расстраивает это.

Гиль Беркерс
источник

Ответы:

0

Я чувствую тебя, у меня / были те же проблемы. Для вашей первой проблемы есть решение: удалите ненужные модули, а не просто отключите их. Добавьте следующее в ваш composer.json:

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

если вы хотите удалить модуль уведомления администратора, например. Это полностью объяснено в моем блоге на https://www.integer-net.com/removing-unused-core-modules-from-magento-2-the-right-way .

Что касается вашего второго замечания: это ошибка, поданная по адресу https://github.com/magento/magento2/issues/12696 . Я нахожу это действительно раздражающим тоже. Насколько я знаю, для этого пока нет хорошего решения, кроме как прокомментировать отчет об ошибке и, таким образом, привлечь его внимание к основным разработчикам.

Кто-то однажды сказал мне, что интеграционные тесты созданы только для разработчиков расширений, чтобы проверить, соответствует ли ваш модуль критериям для его выхода на рынок. Это правда?

Нет. Это также очень полезно на основе проекта. Вы просто должны позаботиться о проблемах, которые вы упомянули.

Андреас фон Студниц
источник