Я пишу множество интеграционных тестов для Magento 2. Это помогает моей локальной разработке, и они прекрасно вписываются в CI.
Тем не менее, есть некоторые странности в тесте интеграции Magento. Например:
- По умолчанию все модули включены, и отключить это невозможно. Это может иметь некоторые нежелательные побочные эффекты, поскольку в клиентском проекте вы, скорее всего, отключаете ненужные вам модули, например модуль Vertex. Однако этот модуль добавляет обязательное поле в модель вашего клиента, поэтому нет необходимости говорить, что если вы создадите клиента в интеграционном тесте, этот тест не пройден .
- Он добавляет тестовые модули Magento в вашу кодовую базу . Таким образом, каждый раз, когда вы запускаете свой комплект интеграционных тестов, вы получаете 3 дополнительных модуля в своем
app/code/Magento
пространстве имен.
Эти проблемы затрудняют использование интеграционного теста в локальном проекте. Кто-то однажды сказал мне, что интеграционные тесты созданы только для разработчиков расширений, чтобы проверить, соответствует ли ваш модуль критериям для его выхода на рынок. Это правда? Потому что, если так: каков тогда правильный способ написания интеграционных тестов для интернет-магазина ваших клиентов? Мне нравятся аннотации Magento и прочее. Действительно расстраивает это.