- Added Symfony 6.4 LTS support alongside 7.4
- Provided support for chrome 143
- Provided support for PHP 8.4
- Bumped symfony/console to 7.4
- Bumped symfony/intl to 7.4
- Bumped symfony/string to 7.4
- Bumped symfony/dotenv to 7.4
- Bumped symfony/finder to 7.4
- Bumped symfony/mime to 7.4
- Bumped symfony/process to 7.4
- Added support for symfony ^7.4
- Bumped aws/aws-sdk-php package to 3.362.1
- Bumped codeception/module-asserts to 3.2.1
- Bumped composer/composer to 2.9.2
- Bumped guzzlehttp/guzzle to 7.10.0
- Bumped laminas/laminas-diactoros to 3.8.0
- Bumped mustache/mustache to 3.0.0
- Bumped nikic/php-parser to 5.6.2
- Bumped symfony/console to 7.3.6
- Bumped symfony/string to 7.3.4
- Bumped symfony/dotenv to 7.3.2
- Bumped symfony/finder to 7.3.5
- Bumped symfony/http-foundation to 7.3.7
- Bumped symfony/mime to 7.3.4
- Bumped symfony/process to 7.3.4
- Bumped squizlabs/php_codesniffer to 4.0.12025
- Bumped php-coveralls/php-coveralls to 2.9.0
- Added support for symfony ^7.0
- Updated copyright check to use the new Adobe copyright.
- Resolved errors caused by whitespace-only comments.
- Addressed deprecation warnings from spomky-labs/otphp.
- Bumped aws/aws-sdk-php package to 3.344.6
- Bumped composer/composer to 2.8.9
- Bumped codeception/codeception to 5.3.2
- Bumped codeception/module-asserts to 3.2.0
- Bumped csharpru/vault-php to 4.4.1
- Bumped laminas/laminas-diactoros to 3.6.0
- Bumped nikic/php-parser to 5.5.0
- Bumped php-coveralls/php-coveralls to 2.8.0
- Bumped behat/gherkin to 4.14.0
- Bumped symfony/css-selector to 7.3.0
- Bumped symfony/mime to 6.4.21
- Bumped symfony/string to 7.3.0
- Bumped symfony/event-dispatcher to 7.3.0
- Bumped symfony/filesystem to 7.3.0
- Bumped symfony/console to 6.4.22
- Bumped symfony/service-contracts to 3.6.0
- Bumped aws/aws-sdk-php package to 3.342.28
- Bumped composer/composer to 2.8.8
- Bumped codeception/codeception to 5.2.1
- Bumped codeception/module-webdriver to 4.0.3
- Bumped guzzlehttp/guzzle to 7.9.3
- Bumped monolog/monolog to 3.9.0
- Updated cache package version to @v4
- Allowed additional actions to read from credentials file to fix page builder failures.
- Added support for chrome 131
- Removed support for chrome 131
- Provided support for chrome 131
- Provided support for PHP 8.4
- Dropped the support for PHP 8.1
- Removed unwanted dependent packages
- Removed the dependency of codeception/module-sequence and implemented internal adjustments to address PHP 8.4 deprecations.
- Bumped aws/aws-sdk-php package to 3.323.4
- Bumped composer/composer to 2.8.1
- Bumped laminas/laminas-diactoros to 3.4.1
- Bumped nikic/php-parser to 5.3.1
- Bumped squizlabs/php_codesniffer to 3.10.3
- Remove any unused files remaining after upgrading Codeception.
- Bumped brainmaestro/composer-git-hook to ^3.0
- Bumped nikic/php-parser to 5.1.0
- Bumped monolog/monolog to 3.7.0
- Bumped guzzlehttp/guzzle to 7.9.2
- Bumped allure-codeception to ^2.4
- Bumped squizlabs/php_codesniffer to 3.10.1
- Bumped composer/composer to 2.7.7
- Bumped monolog/monolog to 3.6.0
- Bumped spomky-labs/otphp to 11.3.0
- Bumped aws-sdk-php to 3.314.1
- Unneeded reports are shown when MFTF Static tests fail.
- Bumped phpunit/phpunit to ^10.0
- Bumped allure-framework/allure-phpunit to ^3
- Bumped codeception/module-webdriver ^4.0
- Fixed Class "Magento\FunctionalTestingFramework\StaticCheck\ActionGroupArgumentsCheck" not found on running vendor/bin/mftf build:project --upgrade.
- Fail static test when introduced filename does not equal the MFTF object name contained within.
- Bumped all symfony dependencies to `^6.0
- Removed abandoned package codacy/coverage
- Removed abandoned package sebastian/phpcpd
- Bumped monolog/monolog to ^3.0
- Bumped nikic/php-parser to ^5.0
- Bumped all symfony dependencies to `^6.0
- Unit Test for PTS enabled doesn't apply filter fix
- Supported setting custom timeout value for
magentoCLIcommand via an environment variableMAGENTO_CLI_WAIT_TIMEOUT.
- Added Support for PHP 8.3 and enabled PR checks for PHP 8.3.
- Bumped
symfony/consoledependency to^6.0. - Bumped
laminas/laminas-diactorosdependency to^3.0. - Added no-ansi option to bin/mftf command.
- Fixed 8.3 deprecation errors.
- Fixed The build with PTS enabled doesn't apply filter issue.
- Change MFTF command to maintain Magento CLI output.
- Increase browser resolution to 1920x1080.
- Add metadata to ACQE Repositories.
- Add magento admin password to credentials example.
- Fixed test failure while running any test suite with an argument.
- Fixed PHP 8.2 deprecation warnings.
- Same as previous release
- Bumped
doctrine/annotationsdependency to^2.0. - Bumped
squizlabs/php_codesnifferdependency to^3.7. - Bumped
php-webdriver/webdriverdependency to^1.14. - Bumped
symfony/stringdependency to^6.3. - Bumped
symfony/dotenvdependency to^6.3. - Bumped
symfony/finderdependency to^6.3. - Bumped
symfony/http-foundationdependency to^6.3. - Bumped
symfony/mimedependency to^6.3. - Enhanced MFTF Modularity Test with "allow failure list".
- Resolving an issue when test is marked as failed due to Suite after section failure
- Enhance the details in the testgroupmembership.txt file.
- Fixed MFTF helpers & actionGroups allow duplicate argument names to be passed.
- 'bootstrap' argument added to indicate that no additional background processes will be run and the jobs complete in the foreground process.
- Fixed serialization of weakmap exception thrown for every internal exception after codeception upgrade.
- Fixed suites no longer separated by MFTF Suite.
- Fixed cannot bind closure to scope of internal class Exception.
- Fixed broken Mftf doctor command.
- Bumped
allure-framework/allure-codeceptiondependency to^2.1. - Bumped
codeception/codeceptionto^5.0and upgraded its dependent packages. - Replaced Yandex methods with Qameta related methods.
- Created methods for modifying step name and for formatting allure.
- Fixed all issues and exceptions thrown after codeception upgrade.
- Removed dependency of MagentoAllureAdapter in codeception.yml file.
- Updated constraint for php-webdriver to restrict pulling versions above 1.14.0
- Bumped
allure-framework/allure-codeceptiondependency to^1.5to fix downstream dependency issues in Magento.
- Dropped Support for PHP 8.0 and disabled PR checks for PHP 8.0
- Allow MFTF generate minimum possible groups runnable by codeception
- Fixed Allure report not generating issue
- MFTF displays an appropriate message for unable to connect to Selenium server
- Fixed HTML files and images not attached to allure report issue
- Added Supported for PHP 8.2 and enabled PR checks for PHP 8.2
- Dropped Support for PHP 7.4 and disabled PR checks for PHP 7.4
- Upgraded allure-framework/allure-phpunit to its latest version
- MFTF deprecation errors fixes
- Composer downgraded from 2.4 to 2.2 due to lamina issue
- Removed obsolete docs/directories
- Removed environment variable MAGENTO_ADMIN_PASSWORD
- Fixed WaitForElementClickable action cannot be used more than once
- Composer updated to 2.4.2 version
- Static check for duplicate step keys in action group
- Fixed incorrect MFTF test dependencies path
- Removed PHP 7.3 build check from MFTF PR build as PHP 7.3 is no longer supported
- Fixed fatal error when running generate:tests --config parallel -g
- Chrome settings for potential cost reductions
- Fixed admin credentials being output to console in WebAPIAuth
- Fixed links in docs
- Fixed allure reports not generating for composer builds.
- Fixed all MFTF scheduled build not generating allure report.
- Updated symfony/console and symfony/process constraints to support latest Symfony LTS (5.4v)
- Updated Symfony related code to support latest Symfony LTS (5.4v).
- Implement rapid times X clicks on UI element in MFTF
- Log MFTF test dependencies
- Unused entity static check
- Updated docs for new location of password
- Remove any remaining usages of Travis CI from MFTF Repo
- Unit tests for GenerateTestFailedCommandTest and RunTestFailedCommandTest
- Hashicorp Vault PHP lib being instantiated with wrong params
- Fixed invalid UTF-8 chars returned from magentoCLI that breaks allure reporting
- Fixed MFTF tests failure without access to S3
- Removed sub heading Parameters from allure report
- Removed truncation of parameters on running MFTF run:test
- MFTF group summary file
- Static check to detect unused entities
- Ability To Run MFTF JSON Configuration From File
- Test generation error on invalid entities
- Update MFTF to not pass NULL into non-nullable arguments
- Static check for created data outside action group
- Deleted the unused images
- CreateData's to allow uniqueness attribute
- Set proper weight for action for config parallel generation
- Test before/after comments in test/allure
- Throw error message if key value pair is not mapped properly in .credentials file
- Allow MFTF Helpers to Return Data to MFTF Test
- Improve parallel grouping and fix an issue with unbalanced groups
- Added new action WaitForElementClickable
- Fix encoding issue when secret key contains plus sign
- Adding pagebuilder file upload spinner to loadingMaskLocators
- Failed tests weren't logged correctly to
failedfile which caused a failure during run:failed command execution
- #873 -- Add check for isBuiltin method (for PHP 8 compatibility) by @karyna-tsymbal-atwix
- Moved
hoa/consoleto suggest section to avoid issues with PHP8.0 - Update
vlucas/phpdotenvto the latest versions <seeInCurrentUrl />encodes special character which caused test failed- Add filter for groups, now we can generate tests with specific group annotation
- Seprated a
run:failedcommand togenerate:failedandrun:failedrun:failedcommand can execute failed tests without need to regenerate failed tests
- Deleting MagentoPwaWebDriver file and moving it to Pwa_tests repo
-
#842 -- Eliminated AspectMock from FileStorageTest
-
#843 -- Eliminated AspectMock from ObjectExtensionUtilTest
-
#844 -- Eliminated AspectMock from TestObjectHandlerTest
-
#845 -- Eliminated AspectMock from SuiteObjectHandlerTest
-
#846 -- Eliminated AspectMock from ActionGroupObjectTest
-
#847 -- Removed not used mocked object
-
#848 -- Eliminated AspectMock usage from ActionObjectTest
-
#850 -- Eliminated AspectMock from TestGeneratorTest
-
#852 -- Eliminated AspectMock from ModuleResolverTest
-
#853 -- Eliminated AspectMock from PersistedObjectHandlerTest
-
#855 -- Eliminated AspectMock from OperationDataArrayResolverTest
-
#856 -- Eliminated AspectMock from DataExtensionUtilTest
-
#857 -- Eliminated AspectMock from ParallelGroupSorterTest
-
#859 -- Eliminated AspectMock usage from SuiteGeneratorTest
-
#861 -- Eliminated aspect mock from mock module resolver builder
-
#862 -- Eliminated AspectMock where it was imported but never used
-
#863 -- Eliminated AspectMock from MagentoTestCase
-
#864 -- Eliminated AspectMock usage from TestLoggingUtil
-
#865 -- Eliminated aspect mock from object handler uti
-
#866 -- Added access/secret key config parameters
-
#867 -- Added empty query and fragment testing to the UrlFormatterTest
-
#868 -- PHP 8 support - fix code related to changes in CURL
-
#869 -- The squizlabs/php_codesniffer composer dependency has been updated to version 3.6.0
-
#870 -- Removing the csharpru/vault-php-guzzle6-transport not needed dependency
-
#871 -- Changed loose comparisons into strict
-
#872 -- Fix broken MFTF tests
3.6.1
- Maintainability
- Updated allure dependencies to pull package from new repo
allure-framework/allure-php-api.
- Updated allure dependencies to pull package from new repo
- Maintainability
- Updated composer dependencies to be PHP 8 compatible with the except of codeception/aspect-mock.
- #830 -- Add ability to configure multiple OTPs
- #832 -- Updated monolog/monolog to ^2.2
- #833 -- Removed usage of AspectMock in FilesystemTest
- #834 -- Removed usage of AspectMock in AnnotationsCheckTest
- #838 -- Removed usage of AspectMock in DeprecatedEntityUsageCheckTest
- #841 -- Removed usage of AspectMock in GenerationErrorHandlerTest
- #854 -- Updated "monolog" to the latest version 2.3.1
- #825 -- Update allure-codeception in order to support php8
- Customizability
- Added new
config:parallel --groupsoption ingenerate:testscommand to generate and split tests/suites into required number of execution time balanced groups.
- Added new
- Added --no-sandbox chrome option in functional suite configuration.
- #824 -- Fix typo in introduction.md
- #816 -- Update mftf.md
- #812 -- Added examples and modified url links in assertions.md
- Maintainability
- Added support for composer 2.
-
Usability
- #817 -- Add support for admin WebAPI token refresh.
-
Maintainability
- Fixed test generation error in a split suite group (--config=parallel) to allow generation of subsequent groups.
- Fixed an issue where test extends from a skipped parent is not properly skipped.
- Fixed issue that causes Magento bin/magento to fail when xdebug 3 is used. GitHub Issue #808
- #806 -- Enable an extending entity to overwrite a requiredEntity binding
- #809 -- Add MFTF documentation for AWS S3
-
Usability
- Introduced error tolerance during test and suite generation. See the command page for details. Addressed github issue #276.
-
Maintainability
- Updated annotation static-check to check all required annotations.
- Fixed issue where CUSTOM_MODULE_PATHS env variable does not use all paths.
- Fixed issue where run:test only records the last failed test in
failedfile.
- Traceability
- Removed
travis.ymland replaced with.github/workflows/main.yml
- Removed
Fixed issue with XPath locators for waits in MagentoPwaWebDriver.
-
Customizability
- Introduced the new
returnaction that allows action groups to return a value. See the actions page for details. - Introduced new MFTF command that invokes
vendor/bin/codecept run. See the mftf page for details.
- Introduced the new
-
Usability
- Introduced new action
pause, to invoke codeception interactive pause for debugging during test execution. See the Interactive Pause page for details. - Introduced a new
.envconfiguration optionENABLE_PAUSE, to enable the new pause feature.
- Introduced new action
-
Maintainability
- Added a new static check that checks for the usage of the
pauseaction. See the command page for details.
- Added a new static check that checks for the usage of the
-
Modularity
- MFTF now supports the use of actions from multiple modules within suites.
-
Traceability
- A deprecation notice is now added at test execution time for deprecated metadata usage.
- Fixed issue with suite precondition failure for
createDatawith required entity.
- #547 -- Fix invalid behavior of MAGENTO_BACKEND_BASE_URL
- #742 -- Fix Waits In MagentoPwaWebDriver
- #750 -- Docs: Outlining the difference between Allure severity levels
- #683 -- Docs: Renamed sample test name with the correct one
- #691 -- Docs: Branch name updates
- #678 -- Docs: Command added to modify the web server rewrites configuration
- #745 -- Docs: Remove invalid sample test name
-
Customizability
- Introduced MFTF helpers
<helper>to create custom actions outside of MFTF.See custom-helpers page for details - Removed deprecated actions
<executeSelenium>and<performOn>. <group value="skip"/>no longer skips a test. Instead, the test is added to theskipgroup.
- Introduced MFTF helpers
-
Maintainability
- Added support for PHP 7.4.
- Added support for PHPUnit 9.
- Dropped support for PHP 7.0, 7.1, 7.2.
- Schema updates for test entities to only allow single entity per file except Data and Metadata.
- Support for sub-folders in test modules.
- Removed support to read test entities from
<magento>dev/tests/acceptance/tests/functional/Magento/FunctionalTest. - Removed file attribute for
<module>in suiteSchema. - Removed action
pauseExecutionand addedpause. See actions page for details - Removed action
formatMoneyand addedformatCurrency. See actions page for details - Improved assertion actions to support PHPUnit 9 changes. See assertions page for details
- Added new actions:
assertEqualsWithDelta,assertNotEqualsWithDelta,assertEqualsCanonicalizing,assertNotEqualsCanonicalizing,assertEqualsIgnoringCase,assertNotEqualsIgnoringCase. - Added new actions:
assertStringContainsString,assertStringNotContainsString,assertStringContainsStringIgnoringCase,assertStringNotContainsStringIgnoringCasefor string haystacks. - Removed actions:
assertInternalType,assertNotInternalType,assertArraySubset. - Removed delta option from
assertEqualsandassertNotEquals.
- Added new actions:
- Added static check
deprecatedEntityUsagethat checks and reports references to deprecated test entities. - Added static check
annotationsthat checks and reports missing annotations in tests. - Updated
bin/mftf static-checkscommand to allow executing static-checks defined instaticRuleSet.jsonby default. See command page for details - Added support for Two-Factor Authentication (2FA). See configure-2fa page for details
- Added new upgrade script to remove unused arguments from action groups.
mftf.logno longer includes notices and warnings at test execution time.- Added unhandledPromptBehavior driver capability for Chrome 75+ support.
- Added the Chrome option
--ignore-certificate-errorstofunctional.suite.dist.yml.
-
Traceability
- Removed
--debugoptionNONEto disallow ability to turn off schema validation. - Notices added for test entity naming convention violations.
- Metadata file names changed to
*Meta.xml. - Introduced new
.envconfigurationVERBOSE_ARTIFACTSto toggle saving attachments in Allure. See configuration page for details - Changed the
bin/mftf static-checkserror file directory from the current working directory toTESTS_BP/tests/_output/static-results/.
- Removed
-
Readability
- Support only nested assertion syntax See assertions page for details.
- Documented 3.0.0 Backward Incompatible Changes.
- Removed blacklist/whitelist terminology in MFTF.
-
Upgrade scripts added to upgrade tests to MFTF major version requirements. See upgrade instructions below.
-
Bumped dependencies to support PHP/PHPUnit upgrade.
- Run
bin/mftf reset --hardto remove old generated configurations. - Run
bin/mftf build:projectto generate new configurations. - Run
bin/mftf upgrade:tests. See command page for details. - After running the above command, some tests may need manually updates:
- Remove all occurrences of
<executeInSelenium>and<performOn>. - Remove all occurrences of
<module file=""/>from any<suite>s. - Ensure all
<assert*>actions in your tests have a valid schema.
- Remove all occurrences of
- Lastly, try to generate all tests. Tests should all be generated as a result of the upgrades.
- If not, the most likely issue will be a changed XML schema. Check error messaging and search your codebase for the attributes listed.
- Throw exception during generation when leaving out .url for
amOnPage. request_timeoutandconnection_timeoutadded to functional.suite.yml.dist.- Fixed
ModuleResolverto resolve test modules moved out of deprecated path. - Fixed issue of resolving arguments of type
entityin action groups within a custom helper. - Fixed reporting issue in output file for
testDependenciesstatic check. - Fixed a bug in
actionGroupArgumentsstatic check when action group filename is missingActionGroup. - Fixed issue of running suites under root
_suitedirectory in Standalone MFTF. - Fixed issue with custom helper usage in suites.
- Fixed issue with decryption of secrets during data entity creation.
- Fixed issue with merging of
arrayitems in data entity. - Fixed issue where an extended data entity would not merge array items. Array items should merge properly now.
- Fixed issue where Chrome remains running after MFTF suite finishes.
- Fixed javascript error seen on Chrome 83 for dragAndDrop action.
- Fixed allure issue when
WebDriverCurlExceptionis encountered inafterStep.
- #567 -- log attachments for failed requests.
- added dependency to packages MFTF used but never specified in composer.json
--filteroption was added tobin/mftf generate:testscommand. For more details please go to https://devdocs.magento.com/mftf/docs/commands/mftf.html#generatetests
- Fixed float conversion error in test generation
- Usability
- Introduced new
.envconfigurationELASTICSEARCH_VERSIONto support multiple elasticsearch versions
- Introduced new
- Maintainability
- Added deprecation notices for upcoming MFTF 3.0.0
- Replaced facebook webdriver with php-webdriver to support PHP version updates
- Usability
magentoCronaction added by community maintainer @lbajsarowicz
- Traceability
- MFTF generated cest files are fully compatible for Codeception
dry-run.
- MFTF generated cest files are fully compatible for Codeception
- Modularity
mftf generate:testsandmftf run:testcommands now accept suite scoped test names in format[suitename:testname]....
- Maintainability
- Support
deprecatedsyntax for the following test entities:- Test
- Action Group
- Data
- Metadata
- Page
- Section
- Section Element
- See DevDocs for details
- Improved
mftf static-checkscommand to allow executing all or specific static checks. - Added a new static check that checks and reports unused arguments in action groups.
- Support
- Customizability
- AWS Secrets Manager has been added as an additional credential storage.
- See DevDocs for details
- AWS Secrets Manager has been added as an additional credential storage.
- Bumped dependencies to latest possible versions
- Fixed missing before, after, failed steps in cest file when generating tests with
--allow-skippedoption. - Fixed suites and tests display issue in Allure
Suitespage aftermftf run:groupcommand. createDataaction now shows a meaningful error message at runtime when the entity does not exist.
- Traceability
- Introduced new
mftf doctorcommand- Command verifies and troubleshoots some configuration steps required for running tests
- Please see DevDocs for more details
<*Data>actions now containAPI EndpointandRequest Headerartifacts.- Introduced new
.envconfigurationsENABLE_BROWSER_LOGandBROWSER_LOG_BLOCKLIST- Configuration enables allure artifacts for browser log entries if they are present after the step.
- Blocklist filters out logs from specific sources.
- Introduced new
- Customizability
- Introduced
timeout=""tomagentoCLIactions.
- Introduced
- #317 -- RetrieveEntityField generation does not consider ActionGroup as part of namespace
- #433 -- Add possibility to include multiple non primitive types in an array
- A test now contains attachments for every exception encountered in the test (fix for a test
<after>exception overriding all test exceptions). - Fixed hard requirement for
MAGENTO_BASE_URLto contain a leading/. magentoCLIactions forconfig:sensitive:setno longer obscure CLI output.WAIT_TIMEOUTin the.envnow correctly setspageload_timeoutconfiguration.- Fixed an issue where
run:groupcould not consolidate agroupthat had tests in and out of<suite>s.
- Fixed an issue where
createDataactions would cause an exception when used in<suite>hooks.
- Traceability
- Allure report enhanced to display file path of tests.
- Maintainability
- Added support to read MFTF test entities from
<magento>dev/tests/acceptance/tests/functional/<vendor_name>/<module_name>/* - Removed path deprecation warning from
ModuleResolver. - Refactored problem methods to reduce cyclomatic complexity.
- Added support to read MFTF test entities from
- Fixed issue with builds due to absence of AcceptanceTester class.
- #348 -- executeInSelenium command fixed to prevent escaping double quotes.
- Fixed missing
usestatement in the generate:suite command
- #471 -- PHP Fatal error: MftfApplicationConfig not found in GenerateSuiteCommand
- Traceability
- Allure output has been enhanced to contain new test artifacts created and used per MFTF step:
makeScreenshotwill contain an attachment under its Allure step.seeInCurrentUrland all otherUrlasserts now contain an attachment with the expects vs actual comparison.createDataand all otherDataactions now contain attachments withRequest BodyandResponse Body.
- Allure output has been enhanced to contain new test artifacts created and used per MFTF step:
- Modularity
- Added a new
mftf run:manifestcommand to run testManifest files generated bygenerate:tests.- See DevDocs for details
mftf generate/run:testcommands now implicitly generates thesuitethe test exists in.- If a test exists in multiple suites, it will generate it in all suite contexts.
mftf run:test <testName>will now only run the exact test provided, regardless of what is generated.
- Added a new
- Maintainability
- Added an
--allow-skippedflag that allows MFTF to ignore the<skip>annotation. This was added to the following commands:generate:testrun:testrun:grouprun:failed
- Added an
- Customizability
<entity>defined in data.xml can now reference other<entity>directly.- See DevDocs for details
- Added vault as an alternative credential storage.
- See DevDocs for details
- Fixed an issue where
grabaction variables were not substituting correctly when used as an element parameter. - Framework will not throw a descriptive error when referencing a
$persisted.field$that does not exist. - MFTF test materials that
extends=""itself will no longer cause infinite recursion. - Fixed an issue where a test could not reference a
$data.field$whose casing was modified by the API that it used. - Fixed an issue with the default
functional.suite.ymlwhere it was incompatible withsymfony/yaml 4.0.0. - Improved test generation performance via class refactors (
~10%faster).
- #377 -- Non-API operations fixes
- Fixed an issue where
.credentialswas required when using<createData>actions with field overrides.
- Fixed an issue where
_CREDScould not be resolved when used in a suite.
- Customizability
- Use of
_CREDShas been extended to<magentoCLI>and<createData>actions
- Use of
- Traceability
- A Test step is now generated and injected in the allure report when a test is reported as
BROKEN.
- A Test step is now generated and injected in the allure report when a test is reported as
static-checkscommand now properly returns1if any static check failed.- MFTF Console Printer class correctly utilizes
--stepsand other flags passed directly tocodecept commands. *sourceactions correctly print when usinguserInputorhtmlattributes.- XML Comments should no longer throw an error in parsing when used outside
test/actionGroup
- #703 -- SMALL_CHANGE: Minor change suggested
- Traceability
- Test action
stepKeys are now included in both console output and Allure report. - XML Comments are now automatically converted into a
<comment>action.
- Test action
- Moved
epfremme/swagger-phpdependency tosuggestsblock due to a conflict with Magento extensions.
- Traceability
- XSD Schema validation is now enabled by default in
generate:tests,run:test,run:failed,run:group --debugoption for the above commands has been updated to include different debug levels- See DevDocs for details
- XSD Schema validation is now enabled by default in
- Fixed an issue where
skipReadinessattribute would cause false XSD Schema validation errors.
- Maintainability
- Added new
mftf static-checkscommand to run new static checks against the attached test codebase- See DevDocs for details
- Added new
mftf generate:docscommand that generates documentation about attached test codebase- See DevDocs for details
- Added new
- Traceability
- Allure reports for tests now contain collapsible sections for
actionGroups used in execution.
- Allure reports for tests now contain collapsible sections for
- Fixed an issue where
magentoCliwould treatargument="0"as a null value. - Fixed an issue where
amOnPageandwaitForPwaElementVisiblewould not utilize thetimeoutattribute correctly when MagentoPwaWebDriver is enabled. - Fixed an issue where invalid XML characters would cause Allure to throw an exception without a resulting report.
- Fixed
codeception.dist.ymlconfiguration for keeping previous test run results. - PHP Notices are no longer thrown when XML is missing non-necessary attributes.
- Removed unusable
fillSecretFieldaction from schema.
- #338 -- Return exit codes of process started by 'run:test', 'run:group' or 'run:failed' command
- #333 -- Added Nginx specific settings to getting started doc
- #332 -- executeInSelenium action does not generate proper code
- #318 -- Reduce cyclomatic complexity in Problem Methods
- #287 -- Update requirements to include php7.3 support
- Maintainability
command.phpis now configured with anidleTimeoutof60seconds, which will allow tests to continue execution if a CLI command is hanging indefinitely.
- Traceability
- Failed test steps are now marked with a red
xin the generated Allure report. - A failed
suite<before>now correctly causes subsequent tests to marked asfailedinstead ofskipped.
- Failed test steps are now marked with a red
- Customizability
- Added
waitForPwaElementVisibleandwaitForPwaElementNotVisibleactions.
- Added
- Modularity
- Added support for parsing of symlinked modules under
vendor.
- Added support for parsing of symlinked modules under
- Fixed a PHP Fatal error that occurred if the given
MAGENTO_BASE_URLresponded with anything but a200. - Fixed an issue where a test's
<after>would run twice with Codeception2.4.x - Fixed an issue where tests using
extendswould not correctly override parent test steps - Test actions can now send an empty string to parameterized selectors.
- #297 -- Allow = to be part of the secret value
- #267 -- Add PHPUnit missing in dependencies
- #266 -- General refactor: ext-curl dependency + review of singletones (refactor constructs)
- #264 -- Use custom Backend domain, refactoring to Executors responsible for calling HTTP endpoints
- #258 -- Removed unused variables in FunctionCommentSniff.php
- #256 -- Removed unused variables
- Fetched latest allure-codeception package
mftf run:failednow correctly regenerates tests that are in suites that were parallelized (suite=>suite_0,suite_1)
- Maintainability
- Added new
mftf run:failedcommands, which reruns all failed tests from last run configuration.
- Added new
- Fixed an issue where mftf would fail to parse test materials for extensions installed under
vendor. - Fixed a Windows compatibility issue around the use of Magento's
ComponentRegistrarto aggregate paths. - Fixed an issue where an
elementwith notypewould cause PHP warnings during test runs.
- Logic for parallel execution were updated to split default tests and suites from running in one group.
ModuleResolverwill now only scan underMAGENTO_BP/app/code/...andMAGENTO_BP/vendor/...for/Test/Mftfdirectories.- Fixed an issue where
Test.xmlfiles that did not end with*Test.xmlwould not be scanned for duplicates and other XML validation.
- Traceability
- Test generation errors output xml filename where they were encountered, as well as xml parent nodes where applicable.
- Duplicate element detection now outputs parent element where duplicate was found.
- Maintainability
- Standalone MFTF can now be pointed at a Magento installation folder to generate and execute tests.
- See DevDocs for more information.
- MFTF now checks for
testandactionGroupelements that have the samenamein the same file.
- Standalone MFTF can now be pointed at a Magento installation folder to generate and execute tests.
- Customizability
- Updated prefered syntax for
actionGrouparguments that usexml.data(old syntax is still supported)- Old:
xml.data - New:
{{xml.data}}
- Old:
- Updated prefered syntax for
- Modularity
ModuleResolvernow utilizes each Magento module'sregistration.phpto map MFTF test material directories.
- The
waitForPageLoadaction now correctly uses the giventimeoutattribute for all of its checks. - Firefox compatibility issues in javascript error logging were fixed.
- Fixed an issue where arguments containing
-would not properly resolve parameterized selectors. - Fixed an issue where actions using
parameterArraywould not resolve$persisted.data$references. - Fixed an issue where composer installations of Magento would fail to parse MFTF materials under a path
vendor/magento/module-<module>/
- Maintainability
- A
-ror--removeflag has been introduced tobin/mftfcommands to clear out the contents of the_generatedfolder before generation. This flag has been added to the following commands:generate:testsgenerate:suiterun:testrun:group
- A
- Customizability
- Persisted data handling mechanisms have been reworked.
- All persisted data is now referenced with the single
$syntax (old syntax is still supported):$persistedData.field$
- Persisted data resolution now starts in its own scope and broadens if no matching
stepKeywas found in the current scope. - Added support for referencing
suitepersisted data in tests. - Added support for removing data created in between test scopes (
test,before/after,suite).
- All persisted data is now referenced with the single
- An attribute
skipReadinesshas been added to all test actions, allowing the individual test action to completely bypass theReadinessExtensionif it is enabled.
- Persisted data handling mechanisms have been reworked.
- To prevent Allure reporting from collating tests with identical
title, thetestCaseIdannotation is now automatically prepended to thetitleannotation when tests are generated. - The
magentoCLIcommand now correctly removesindex.phpif it is present in theMAGENTO_BASE_URL. - Invalid XML errors now indicate which XML file caused the error.
- Attempting to
extenda test that does not exist now skips the generation of the test. - Fixed an issue where a
suitewould generate invalid PHP if thebeforeoraftercontained onlycreateDataactions. - Fixed an issue where a selector inside an
actionGroupwould incorrectly append theactionGroup'sstepKeyto the selector.
- Removed
PageReadinessExtensionfrom default enabled extensions due to Jenkins instability.
- MagentoWebDriver overrides
parent::_after()function and remaps torunAfter(), necessary to solve compatibility issues in Codeception2.3.x.
- Defaults in
etc/config/functional.suite.dist.ymlchanged: window-size to1280x1024, and removed--ingonitoflag.
- The
executeJsfunctionno longer escapes persisted variables referenced via$$persisted.key$$. - Extending a test no longer fails to generate the parent
test'sbefore/afterblocks if the parent was skipped.
- Maintainability
mftf build:projectnow copies over thecommand.phpfile into the parent Magento installation, if detected.
- Traceability
- MFTF now outputs generation run-time information, warnings, and errors to an
mftf.logfile. - Overall error messages for various generation errors have been improved. Usage of the
--debugflag provides file-specific errors for all XML-related errors. - Allure Reports now require a unique
storyandtitlecombination, to prevent collisions in Allure Report generation. - The
featuresannotation now ignores user input and defaults to the module the test lives under (for clear Allure organization). - The
<group value="skip"/>annotation has been replaced with a<skip>annotation, allowing for nestedIssueIdelements. - Tests now require the following annotations:
stories,title,description,severity.- This will be enforced in a future major release.
- MFTF now outputs generation run-time information, warnings, and errors to an
- Modularity
- MFTF has been decoupled from MagentoCE:
- MFTF can now generate and run tests by itself via
bin/mftfcommands. - It is now a top level MagentoCE dependency, and no longer relies on supporting files in MagentoCE.
- It can be used as an isolated dependency for Magento projects such as extensions.
- MFTF can now generate and run tests by itself via
generate:testsnow warns the user if any declared<page>has an inconsistentmodule(BackendvsMagento_Backend)- The
--forceflag now completely ignores checking of the Magento Installation, allowing generation of tests without a Magento Instance to be running.
- MFTF has been decoupled from MagentoCE:
- Customizability
- Various test materials can now be extended via an
extends="ExistingMaterial"attribute. This allows for creation of simple copies of anyentity,actionGroup, ortest, with small modifications. testandactionGroupdeltas can now be provided in bulk via abefore/afterattribute on thetestoractionGroupelement. Deltas provided this way do not need individualbefore/afterattributes, and are inserted sequentially.- Secure and sensitive test data can now be stored and used via a new
.credentialsfile, with declaration and usage syntax similar to.envfile references. - A new
<generateDate>action has been added to allow users to create and use dates according to the givendateandformat.- See DevDocs for more information on all above
Customizabilityfeatures.
- See DevDocs for more information on all above
- Various test materials can now be extended via an
- Maintainability
- New
bin/mftfcommands have been introduced with parity to existingrobocommands.robocommands are still supported, but will be deprecated in a future major release.
- The
mftf upgrade:testscommand has been introduced, which runs all test upgrade scripts against the provided path.- A new upgrade script was created to replace all test material schema paths to instead use a URN path.
- The
mftf generate:urn-catalogcommand has been introduced to create a URN catalog in PHPStorm to support the above upgrade. - A warning is now shown on generation if a page's url is referenced without specifying the url (
{{page}}vs{{page.url}}). - An error is now thrown if any test materials contain any overriding element (eg different
<element>s in a<section>with the samename)- This previously would cause the last read element to override the previous, causing a silent but potentially incorrect test addition.
- Test distribution algorithm for
--config parallelhas been enhanced to take average step length into account.
- New
_afterhook of tests now executes if a non test-related failure causes the test to error.- Fixed periods in Allure Report showing up as
•. - Fixed Windows incompatibility of relative paths in various files.
- Suites will no longer generate if they do not contain any tests.
- Fixed an issue in generation where users could not use javascript variables in
executeJSactions. - Fixed an issue in generation where entity replacement in action-groups replaced all entities with the first reference found.
- Fixed an issue in generation where
createDataactions insideactionGroupscould not properly reference the givencreateDataKey. - Fixed an issue where
suitescould not generate if they included anactionGroupwith two arguments. - Fixed an issue in generation where calling the same entity twice (with different parameters) would replace both calls with the first resolved value.
- The
magentoCLIaction now correctly executes the given command if theMAGENTO_BASE_URLcontainsindex.phpafter the domain (exhttps://magento.instance/index.php) - The
stepKeyattribute can no longer be an empty. - Variable substitution has been enabled for
regexandcommandattributes in test actions.
- #161 -- MAGETWO-46837: Implementing extension to wait for readiness metrics.
- #72 -- declare(strict_types=1) causes static code check failure (fixed in #154)
- Traceability
- Javascript errors are now logged and reported in test output.
- Test failures are no longer overwritten by failures in an
<after>hook. - Tests will no longer execute an
<after>hook twice if a failure triggered in the<after>hook. - Tests marked with
<group value="skip">will now appear in generated Allure reports.- Along with the above, the
robo groupcommand no longer omits theskipgroup (skipped tests are picked up but not fully executed).
- Along with the above, the
- Modularity
- MFTF no longer relies on relative pathing to determine its path to tests or Magento (favoring composer information if available).
- Tests and test materials are now read in from Magento modules as well as extensions in addition to
dev/tests/acceptance.- See DevDocs
Getting Startedfor details on expected paths and merge order.
- See DevDocs
- Customizability
- Creation of Suites is now supported
<suite>can include tests vianame, module, or<group>tags.- Consolidation of preconditions can be achieved via use of
<before/after>tags in a<suite>- All normal test actions are supported
- Data returned from actions is not available for reference in subsequent tests (
createDataorgrabactions).
robo generate:testsgenerates all suites and tests, and can be given a JSON configuration to generate specific test/suites.- See MFTF Devdocs "Suite" page for more details.
<deleteData>may now be called against aurlinstead of a stepKey reference.<dragAndDrop>may now be given an additionalx/yoffset.<executeJS>now returns a variable based on what the executed script returns.- Added
<element>type="block". <page>elements may now be blank (contain no child sections).
- Creation of Suites is now supported
- Maintainability
robo generate:tests --config parallelnow accepts a--linesargument, for grouping and sorting based on test length.robo generate:testsnow checks for:- Duplicate step keys within an
actionGroup. - Ambiguous or invalid
stepKeyreferences (in merge files).
- Duplicate step keys within an
robo generate:testsnow suppresses warnings by default. The command now accepts a--verboseflag to show full output including warnings.
- Exception message for the
<conditionalClick>action now correctly references theselectorgiven. - Usage of multiple parameterized elements in a
selectornow correctly resolves all element references. - Usage of multiple uniqueness references on the same entity now generate correctly.
- Persisted entity references are correctly interpolated with
<page>url oftype="admin". - Metadata that contains 2 or more params in its
urlnow correctly resolve parameters. - Arguments can now be passed to
xandyattributes inactionGroup. - Arguments can now be passed to nested
<assert*>action elements. - The
<seeInField>action can now be used to assert against empty strings. - Empty
<data>elements within an<entity>now generate correctly. - Mapping of the
<magentoCLI>to the custom command has been fixed.
- #89 -- Add ability to use array entities as arguments.
- #68 -- Excessive double quotes are being generated in WaitForElementChange method arguments (fixed in #103)
- #31 -- Can't run tests without a store having "default" store code (fixed in #86)
- Added support for PHP version 7.2
- Modularity
- MFTF now supports the existence of tests as composer package dependencies or as living alongside core modules. Supported paths:
magento2ce/vendor/[vendor]/[module]/Test/Acceptancemagento2ce/app/code/[vendor]/[module]/Test/Acceptance
- MFTF now supports the existence of tests as composer package dependencies or as living alongside core modules. Supported paths:
- Maintainability
- Robo command
generate:testsnow accepts a--nodesargument that specifies the number of test manifest files to generate for parallel configuration.
- Robo command
- Data returned by
grabandcreateDataactions can now be used in<actionGroup>test steps by theirstepKeyreference. - Fixed an issue where
<requiredEntity>elements inside<entity>data xml would overwrite one another when merged. - Fixed an issue where
<object>elements inside<operation>metadata xml would overwrite one another when merged. - Nested assertion syntax now correctly allows for values passed in to resolve
{{entity.data}}references. - Test action
<selectMultiOption>now correctly resolves entity references passed in tofilterSelectorandoptionSelector. - The robo command
generate:tests --forceno longer requires aMAGENTO_BASE_URLto be defined in the.envfile. - All
featureandstoryannotations now live under in the method and not class level in output test php.- This is to work around a bug with the Allure-Codeception adapter version
1.2.6, which was a dependency update in MFTF2.1.0.
- This is to work around a bug with the Allure-Codeception adapter version
- Traceability
- Severity in
<annotation>tags now properly reflect Magento severity values.
- Severity in
- Modularity
- Added ability to pass in simple values to actionGroups via addition of
typeattribute in actionGroup<argument>declaration.- For examples, see devdocs article on actionGroups.
- Merging resolution now depends on Magento instance's installed modules. This also means merging order now follows the expected module merging order.
- Added ability to pass in simple values to actionGroups via addition of
- Customizability
- Added
<assertArrayIsSorted>action. This action takes in an array of data and asserts that the array is properly sorted, according to the providedsortOrder - Added
<selectMultipleOptions>action. This is a variation of<searchAndSelectOptions>that is given afilterSelector,optionSelector, and an<array>of options to select.- For a working sample, see
SearchAndMultiselectActionGroup.xmlunderCatalogin magento2ce.
- For a working sample, see
- Test actions that deal with
<url...>now utilize and grab the page's full url, not just the/path?query#fragmentportion. - All
<assert...>actions support a clearer, more readable nested syntax.- Both old and new syntax are supported. See devdocs
Assertionsarticle for examples.
- Both old and new syntax are supported. See devdocs
- Added support for overriding a data-entity's
fieldvalues during test runtime, prior to persistence via<createData>actions. - Added
removeBackend="true"attribute to<operation>. Only applicable tooperationdefinitions oftype="adminFormKey", attribute prevents pre-pending ofMAGENTO_BACKEND_NAMEto theurlspecified.- Specific to use case where
adminFormKeyoperations don't followMAGENTO_BASE_URL/MAGENTO_BACKEND_NAME/MAGENTO_BACKEND_NAME/API_URLformat.
- Specific to use case where
- Added
- Readability
- Data Entities used in tests (
<test>,<page>,<section>,<element>,<data>) now require alphanumeric naming.
- Data Entities used in tests (
- Maintainability
- Documentation for all test actions have been added to XML schema. Turning on documentation hinting will display relevant information while writing test XML.
- All references to
.envfile contents are now resolved at test runtime, as opposed to generation.
- Fixed an issue with using the character
-in parameterized selector references.- Users should now be able to use any characters except for
'when providing a'stringLiteral'to a parameterized selector/url.
- Users should now be able to use any characters except for
- Fixed an issue where entity substitution was not enabled in all
<assert...>test actions.
- Readability
- Added the ability to refer to
custom_attributedata in persisted entities viakeyinstead of index.- ex.
url_keyin category entity:$category.custom_attributes[3][value]$and$category.custom_attributes[url_key]$are both valid.
- ex.
- Added the ability to refer to
- Maintainability
- Added check for duplicate
stepKeyattributes at test generation. This check is scoped to<testAction>tags within a single<test>tag in a single file.
- Added check for duplicate
- Fixed inability to use
<actionGroup>with<arguments>in test hooks. - Fixed inability to use
0as data in an entity. - Fixed an issue where using
<annotation>tag of<useCaseId>would cause test generation failures. - Fixed an issue where the
<closeAdminNotification>action could not be used twice in in a<test>. - Fixed an issue where specifying duplicate test actions in test delta's would cause generation errors.
- Fixed an issue where test failure screenshots were being taken at the end of the test hook, as opposed to at the point of failure.
- Operation
metadatawith anauthof typeadminFormKeywill now automatically append specifiedMAGENTO_BACKEND_NAMEif necessary.
- Customizability
- Added the
<magentoCLI>test action. Action takes the givencommand=""and passes it for execution in Magento Environment.- Note: Installation step to enable above action has been added. See
Step 5in the MFTFGetting Startedarticle.
- Note: Installation step to enable above action has been added. See
- Added the
- Maintainability
- Tests now run actions declared in
<after>hook in both successful and failed test runs.
- Tests now run actions declared in
- Fixed inability to use
[]characters within selector/url parameters. - Fixed a bug where the
<formatMoney>action did not return a variable for test use. - Fixed a bug where the
<waitForLoadingMaskToDisappear>action could not be used twice in an<actionGroup>.
- Fixed an issue with
groupannotation.
- Modularity
- Replaced the
<loginAsAdmin>test action with the action groupLoginAsAdmin. - Added the
.envfile variableCUSTOM_MODULE_PATHSwhich can be used to point to any custom extensions that you may want to write tests against. - Added the
<page area="..">property to distinguish between admin and storefront. - Added support for
SectionName.elementNamereferences in anyfunctionattributes.
- Replaced the
- Customizability
- Changed page objects where
area="admin"to prepend theMAGENTO_BACKEND_NAMEvalue from the.envfile. - Added support for HTTP requests that do not require authentication.
- Changed page objects where
- Readability
- Renamed
<config>XML root nodes to match the content they contain, e.g.<tests>or<pages>. - Renamed all instances of the word Cest with Test. The Cest name will no longer be used in the MFTF project.
- Renamed
- Maintainability
- Removed the
returnVariableproperty from any test actions that return values. Instead, thestepKeyproperty will be used as the name of the variable and be referenced as before.
- Removed the
- Fixed the
unselectOption.parameterArrayproperty to work as expected. - Fixed a crash if you had a system environment variable set with the same name as any variable in the
.envfile. - Fixed any actions that refer to CurrentUrl, such as
<seeInCurrentUrl>, to now look at the full webdriver address. - Fixed the
<waitForPageLoad>test action to not assume that you always want to dismiss UI notifications.
- Traceability for clear logging and reporting capabilities
- Modularity to run tests based on modules/extensions installed
- Customizability to have an ability to customize existed tests
- Readability using clear declarative XML test steps
- Maintainability based on simple test creation and overall structure
- Windows 10
- macOS Sierra
- Chrome (Latest) with ChromeDriver Latest
- Support for Firefox is currently incomplete. This will be resolved to support Firefox 57 (Quantum) and latest Gecko driver in next minor release.
MAGENTO_BASE_URLin .env file must have/at the end. Example: http://magento.com/