Description
Introduction
To provide the best quality for Magento Cloud, we should ensure that all delivered features are properly tested from a functional perspective. With the rapidly growing Magento Cloud ecosystem, it's being even more difficult to fulfill this requirement.
Terms
- ECE-Tools - Main Cloud deployment package (https://github.com/magento/ece-tools)
- Cloud Components - Set of additional Magento modules (https://github.com/magento/magento-cloud-components)
- Cloud Patches - Set of security and functional patches (https://github.com/magento/magento-cloud-patches)
Problem
ECE-Tools was decoupled into 4 different packages:
- ECE-Tools
- Cloud Docker
- Cloud Tools
- Cloud Patches
To be able to verify the quality, we should run a set of functional tests to check the integration between Cloud Tools and the Magento version. This part is already done as ECE-Tools Functional Tests. But these tests must be applied also to all of the Magento Cloud ecosystem for each code change being delivered.
Design
We should decouple the Functional Testing framework into Cloud Docker with the possibility to run specific tests for each of Cloud packages. Next diagram provides a visual representation of relations between different packages where Cloud Docker is required for all of them to provide testing infrastructure.
Responsibilities
Cloud Docker will have next responsibilities:
- Provide an extension point to set the set of Functional Tests
- Provide a mechanism to generate a configurable test environment
- Provide tests for its own testing