From ab4dfb4ce5027b8815911c37301cf6b70958a4ca Mon Sep 17 00:00:00 2001 From: Lukasz Bajsarowicz Date: Wed, 11 Mar 2020 01:36:17 +0100 Subject: [PATCH 1/7] DevDocs: Test merging precedence --- docs/img/mftf-extending-precedence.png | Bin 0 -> 127088 bytes docs/merging.md | 10 ++++++++++ 2 files changed, 10 insertions(+) create mode 100644 docs/img/mftf-extending-precedence.png diff --git a/docs/img/mftf-extending-precedence.png b/docs/img/mftf-extending-precedence.png new file mode 100644 index 0000000000000000000000000000000000000000..deed5231f5592ca4a2f7dac8876361774f49b2c0 GIT binary patch literal 127088 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

m!9v#k2iOIEs1X02YcyGO{j85? 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 literal 0 HcmV?d00001 diff --git a/docs/merging.md b/docs/merging.md index e4b91fb5f..9cb48c41f 100644 --- a/docs/merging.md +++ b/docs/merging.md @@ -27,6 +27,15 @@ For example: Although a file name does not influence merging, we recommend using the same file names in merging updates. This makes it easier to search later on. +## Merging precedence + +**Magento Functional Testing Framework** uses Module's `` to merge all XML configurations into Codeception instructions. If there's no Sequence specified, MFTF would use: + +1. Vendor modules (Magento & Vendors) located in `vendor/` +1. Tests located in `app/code/*/*/Test/Mftf` + +![Usual precedence for merging MFTF Tests and resources][mftfExtendingPrecedence image] + ## Add a test You cannot add another [``][tests] using merging functionality. @@ -570,3 +579,4 @@ The `_defaultSample` results corresponds to: [``]: ./section.md [``]: ./test.md [``]: ./test/action-groups.md +[mftfExtendingPrecedence image]: img/mftf-extending-precedence.png From 8df17bf4f390cc3f0daf9ae308fbfebab0f34b4f Mon Sep 17 00:00:00 2001 From: Lukasz Bajsarowicz Date: Wed, 11 Mar 2020 01:00:41 +0100 Subject: [PATCH 2/7] DevDocs: Update Best Practices --- docs/best-practices.md | 42 +++++++++++++++++++++++++++++++++++++++--- 1 file changed, 39 insertions(+), 3 deletions(-) diff --git a/docs/best-practices.md b/docs/best-practices.md index 0b95b1c41..5a62e7347 100644 --- a/docs/best-practices.md +++ b/docs/best-practices.md @@ -2,11 +2,46 @@ Check out our best practices below to ensure you are getting the absolute most out of the Magento Functional Testing Framework. +## Focus on reusability + +### Use existing Tests and resources + +Magento offers more than **3000** acceptance tests, **2500** [Action group]s, **750** Page declarations with more than **1500** Section definitions. +It is very probable that behaviour you want to test already exists as other Test or Action Group. +Instead of writing everything by yourself - try to use `extends` attribute to refer to existing element and customize it. + +**Resources you can reuse** + +* Tests (reusable with `` argument) +* Action Group (reusable with including ``, or extending ``) +* Pages (reusable with reference `{{PageDefinition.url}}`) +* Sections (reusable with reference `{{SectionDefinition.elementDefinition}}`) +* Data Entities (reusable with reference `"` or extending ``) + +

+ +### Extract repetitive Actions + +Instead of writing a few of Tests that perform mostly the same actions, you should thing about [Action group] that is a container for repetitive Actions. +If each run needs different data, use `` to inject necessary information. + +We recommend to keep Action Groups having single responsibility, for example `AdminLoginActionGroup`, which expected outcome is being logged in as Administrator when [Action group] is executed. + +## Contribute + +Althought Magento Core team and Contributors join their forces to cover most of the features with tests, it's impossible to have this done that quick. +If you've covered Magento Core feature with Functional Tests - you are more than welcome to contribute. + +You can also help with [MFTF Test Migration] to get the experience and valuable feedback from other community members and maintainers. + ## Action group -1. [Action group] names should be sufficiently descriptive to inform a test writer of what the action group does and when it should be used. - Add additional explanation in annotations if needed. -2. Provide default values for the arguments that apply to your most common case scenarios. +1. [Action group] names should be sufficiently descriptive to inform a test writer of what the action group does and when it should be used. Add additional explanation in annotations if needed. +1. Provide default values for the arguments that apply to your most common case scenarios. ## `actionGroups` vs `extends` @@ -175,3 +210,4 @@ Since the configurable product module could be disabled, this approach is more r [merging]: merging.html [parameterized selectors]: section/parameterized-selectors.html [sections]: section.html +[MFTF Test Migration]: https://github.com/magento/magento-functional-tests-migration From 716ebd5a3cbfb2882f5237accb50f3f81f92f89a Mon Sep 17 00:00:00 2001 From: Lukasz Bajsarowicz Date: Tue, 10 Mar 2020 23:57:54 +0100 Subject: [PATCH 3/7] Add missing information about Backend Domain support. --- docs/configuration.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/docs/configuration.md b/docs/configuration.md index 9466f2bcc..89ade5e9b 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -32,6 +32,16 @@ Example: MAGENTO_BACKEND_NAME=admin_12346 ``` +### MAGENTO_BACKEND_BASE_URL + +(Optional) If you are running Admin Panel on separate domain, you may need to specify this value: + +Example: + +```conf +MAGENTO_BACKEND_BASE_URL=https://admin.magento2.test +``` + ### MAGENTO_ADMIN_USERNAME The username that tests can use to access the Magento Admin page From 984cc2702cafe717ab1994c494160e4a57be659a Mon Sep 17 00:00:00 2001 From: Lukasz Bajsarowicz Date: Tue, 10 Mar 2020 23:46:16 +0100 Subject: [PATCH 4/7] DevDocs: Update documentation regarding Versioning --- docs/versioning.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/versioning.md b/docs/versioning.md index ecb8438c5..15b98f743 100644 --- a/docs/versioning.md +++ b/docs/versioning.md @@ -12,7 +12,6 @@ If a modification to MFTF forces tests to be changed, this is a backward incompa To find the version of MFTF that you are using, run the Magento CLI command: ```bash -cd / vendor/bin/mftf --version ``` @@ -61,8 +60,10 @@ You must reset the patch and minor version to 0 when you change the major versio This table lists the version of the MFTF that was released with a particular version of Magento. |Magento version| MFTF version| -|---|---| +|--- |--- | +| 2.3.4 | 2.5.3 | +| 2.3.3 | 2.4.5 | | 2.3.2 | 2.3.14 | | 2.3.1 | 2.3.13 | -| 2.3.0 | 2.3.9 | +| 2.3.0 | 2.3.9 | | 2.2.8 | 2.3.13 | From 84d207464547cc0de9cd0794a183884d3fee790f Mon Sep 17 00:00:00 2001 From: Lukasz Bajsarowicz Date: Tue, 10 Mar 2020 23:05:59 +0100 Subject: [PATCH 5/7] DevDocs: Update documentation regarding Update process --- docs/update.md | 81 ++++++++++++++++---------------------------------- 1 file changed, 25 insertions(+), 56 deletions(-) diff --git a/docs/update.md b/docs/update.md index 129742346..5ede6a27d 100644 --- a/docs/update.md +++ b/docs/update.md @@ -1,79 +1,48 @@ # Update the Magento Functional Testing Framework
-[Find your version][] of the MFTF. -The latest Magento 2.3 release supports MFTF 2.3.13. -The latest Magento 2.2 release supports MFTF 2.3.8. -
- -Magento tests and the framework are stored in different repositories. - -Magento tests are stored in the same repository as the Magento code base. -When you pull changes in the Magento code, you're potentially pulling corresponding tests as well. - -The MFTF is installed separately as a dependency using Composer. -When pulling the latest Magento code, update the corresponding Composer dependencies in the `magento2` root directory. -This ensures that the MFTF is up to date. +Both Magento `2.2` and `2.3` supports MFTF `2.5.3` ([Find your version][] of the MFTF). -## Update the MFTF from 2.3.x - -To update the MFTF to the latest patch: - -1. Verify that the Magento [WYSIWYG settings][] and [Security settings][] are set appropriately. -1. Check details about backward incompatible changes in the [Changelog][] and update your new or customized tests. -1. Get the latest framework version using Composer: - - ```bash - composer update - ``` - -1. Generate the updated tests: - - ```bash - vendor/bin/mftf generate:tests - ``` - -## Update the MFTF from 2.2 + -To update the MFTF from the previous minor version: -1. When you update Magento, verify that the Magento [WYSIWYG settings][] and [Security settings][] are set appropriately. -1. Starting at the `magento2/` root directory remove the `vendor/` directory: +**Tests and the Framework itself are stored in different repositories.** - ```bash - rm -rf vendor/ - ``` +* Tests are stored in Module's directory. +* The MFTF is installed separately (usually as a Composer dependency) -1. Get the latest framework version from the Composer dependencies: +While pulling the latest Magento codebase, you are going to get Tests and it's dependencies (eg. Action Groups). - ```bash - composer install - ``` +To understand types of update - please follow the [Versioning][] page. -1. Run the `upgrade:tests` using the new command line tool: +## Patch version update - ```bash - vendor/bin/mftf upgrade:tests app - ``` +Takes place when **third** digit of version number changes. -1. If you are using Phpstorm, update the urn catalog: +1. Make sure that [Security settings][] are set appropriately. +1. Get latest Framework version with `composer update magento/magento2-functional-testing-framework --with-dependencies` +1. Generate updated tests with `vendor/bin/mftf generate:tests` - ```bash - vendor/bin/mftf generate:urn-catalog .idea/ - ``` +## Minor version update -1. Update your own tests, including data, metadata, and so on, if they contain tags that are unsupported in the newer version. +Takes place when **second** digit of version number changes. - Check details about backward incompatible changes and review new MFTF release documentation in the [Changelog][]. +1. Check details about backward incompatible changes in the [Changelog][] and update your new or customized tests. +1. Perform all the actions provided for [Patch Version Update][] +1. When updating from versions below `2.5.0`, verify [WYSIWYG settings][] +1. You may need to run the `upgrade:tests` using `vendor/bin/mftf upgrade:tests app` -1. Generate newly pulled tests: +## Always after update - ```bash - vendor/bin/mftf generate:tests - ``` +1. It's good to regenerate your IDE Schema Definition catalog with `vendor/bin/mftf generate:urn-catalog .idea/` +1. Update your own tests, including data, metadata and other resoruces. Validate if they contain tags that are unsupported in the newer version. +1. As soon as possible - remove the references to resources (ActionGroups, Sections, Tests) marked as deprecated. [Changelog]: https://github.com/magento/magento2-functional-testing-framework/blob/master/CHANGELOG.md [WYSIWYG settings]: getting-started.md#wysiwyg-settings [Security settings]: getting-started.md#security-settings +[Find your version]: introduction.md#find-your-mftf-version +[Versioning]: versioning.md#versioning-policy +[Patch Version Update]: #patch-version-update From c161ab10c0ab9bb7e32782d52e4d2074fce7c80b Mon Sep 17 00:00:00 2001 From: Lukasz Bajsarowicz Date: Thu, 12 Mar 2020 22:35:45 +0100 Subject: [PATCH 6/7] Update Introduction for MFTF --- docs/introduction.md | 137 ++++++++++++++++++++----------------------- 1 file changed, 65 insertions(+), 72 deletions(-) diff --git a/docs/introduction.md b/docs/introduction.md index 61c1eaef3..2c22854a1 100644 --- a/docs/introduction.md +++ b/docs/introduction.md @@ -1,62 +1,94 @@ # Introduction to the Magento Functional Testing Framework -[Find your MFTF version][] of the MFTF. +The **Magento Functional Tesitng Framework** (MFTF) is framework to perform end-to-end acceptance testing. Tests are performed in real web browser (eg. Google Chrome) just like the real user of the Magento store. -The Magento Functional Testing Framework (MFTF) aims to replace the [Functional Testing Framework] in future releases. -MFTF improves: +## Goals -- **Traceability** for clear logging and reporting capabilities. -- **Modularity** to run tests based on installed modules and extensions. -- **Customizability** for existing tests. -- **Readability** using clear and declarative XML test steps. -- **Maintainability** based on simple test creation and overall structure. +- Facilitate functional testing and minimize the effort it takes to perform regression testing. +- Enable extension developers to provide the Functional Tests to offered extensions. +- Having common standard of Quality Assurrance between Magento, Extension Developers and System Intergrators. -Because MFTF tests are written in XML, you no longer need to learn PHP to write tests. +**MFTF also focuses on** -
-We are actively developing functional tests. -Refer to `/app/code///Test/Mftf/` for examples. -Check out the [MFTF Test Migration][] repo. -
+- **Traceability** for clear logging and reporting capabilities. +- **Modularity** to run tests based on installed modules and extensions. +- **Customizability** for existing tests. +- **Readability** using clear and declarative XML test steps. +- **Maintainability** based on simple test creation and overall structure. ## Audience -This MFTF guide is intended for Magento developers and software engineers, such as QA specialists, PHP developers, and system integrators. +- **Contributors**: Tests build their confidence about the results of changes introduced to the platform. +- **Extension Developers**: Can adjust expected behaviour according to their customizations. +- **System Integrators**: MFTF coverage provided out-of-the-box with Magento is solid base for Acceptance / Regression Tests. -## Goals +## MFTF tests + +The MFTF supports two different locations for storing the tests and test artifacts: + +- `/app/code///Test/Mftf/` is the location of local, customized tests. +- `/vendor///Test/Mftf/` is location of tests provided by Magento and vendors. + +If you installed Magento with Composer, please refer to `vendor/magento//Test/Mftf/` for examples. + +### Directory Structure -The purpose of MFTF is to: +The file structure under both of the both path cases is the same: -- Facilitate functional testing and minimize the effort it takes to perform regression testing. -- Make it easier to support the extension and customization of tests via XML merging. +```tree +Test +└── Mftf + ├── ActionGroup + │   └── ... + ├── Data + │   └── ... + ├── Metadata + │   └── ... + ├── Page + │   └── ... + ├── Section + │   └── ... + └── Test + └── ... +``` -## Scope -MFTF will enable you to: +
-- Test user interactions with web applications in testing. -- Write functional tests located in `/app/code///Test/Mftf/`. -- Cover basic functionality using out-of-the-box tests. You can test extended functionality using custom tests. -- Automate regression testing. +We are actively developing functional tests. Check out the [MFTF Test Migration][] repository. + +
## Use cases -As a Magento developer, test changes, such as extended search functionality, a new form attribute, or new product tags. +* **Contributor** changes the core behaviour, fixing the annoing bug. + He wants to have automated "supervisor" which is going to verify his work continuously across the stages of bug fixing. Finally, when fix is done - Functional Test is also proof of work done. -As a software engineer, perform regression testing before release to ensure that Magento works as expected with new functionality. +* **Extension Developer** offers extension that changes core behaviour. + He can easily write new tests to make sure that after enabling the feature, Magento behaves properly. Everything with just extending existing tests. As a result he don't need to write coverage from scratch. + +* **Integration Agency** maintains Client's e-commerce. + They are able to customize tests delivered with Magento core to follow customizations implemented to Magento. After each upgrade they can just run the MFTF tests to know that no regression was introduced. + + +## MFTF output + +- Generated PHP Codeception tests +- Codeception results and console logs +- Screenshots and HTML failure report +- Allure formatted XML results +- Allure report dashboard of results ## Find your MFTF version There are two options to find out your MFTF version: -- using the MFTF CLI -- using the Composer CLI +- using the MFTF CLI +- using the Composer CLI -### MFTF CLI +All the Command Line commands needs to be executed from `` -```bash -cd / -``` +### MFTF CLI ```bash vendor/bin/mftf --version @@ -64,10 +96,6 @@ vendor/bin/mftf --version ### Composer CLI -```bash -cd / -``` - ```bash composer show magento/magento2-functional-testing-framework ``` @@ -89,41 +117,6 @@ utils // The test-running utilities. codeception.dist.yml // Codeception configuration (generated while running 'bin/mftf build:project') ``` -## MFTF output - -- Generated PHP Codeception tests -- Codeception results and console logs -- Screenshots and HTML failure report -- Allure formatted XML results -- Allure report dashboard of results - -## MFTF tests - -The MFTF supports two different locations for storing the tests and test artifacts: - -- `/app/code///Test/Mftf/` is the directory to create new tests. -- `/vendor///Test/Mftf/` is the directory with the out of the box tests (fetched by the Composer). - -All tests and test data from these locations are merged in the order indicated in the above list. - -The file structure under the both path cases is the same: - -```tree - -├── ActionGroup -│   └── ... -├── Data -│   └── ... -├── Metadata -│   └── ... -├── Page -│   └── ... -├── Section -│   └── ... -└── Test - └── ... -``` - ## MFTF on Github Follow the [MFTF project] and [contribute on Github]. From 11955b0539b145b14c32e7e0e821550938be6113 Mon Sep 17 00:00:00 2001 From: Donald Booth Date: Fri, 13 Mar 2020 10:20:58 -0500 Subject: [PATCH 7/7] Editorial pass --- docs/best-practices.md | 46 +++++++++++++++++----------------- docs/configuration.md | 2 +- docs/introduction.md | 56 ++++++++++++++++++++---------------------- docs/update.md | 21 ++++++---------- 4 files changed, 58 insertions(+), 67 deletions(-) diff --git a/docs/best-practices.md b/docs/best-practices.md index 5a62e7347..c9068a90b 100644 --- a/docs/best-practices.md +++ b/docs/best-practices.md @@ -7,36 +7,36 @@ Check out our best practices below to ensure you are getting the absolute most o ### Use existing Tests and resources Magento offers more than **3000** acceptance tests, **2500** [Action group]s, **750** Page declarations with more than **1500** Section definitions. -It is very probable that behaviour you want to test already exists as other Test or Action Group. -Instead of writing everything by yourself - try to use `extends` attribute to refer to existing element and customize it. +It is very probable that behaviour you want to test already exists as a Test or Action Group. +Instead of writing everything by yourself - use `extends` attribute to refer to existing element and customize it. -**Resources you can reuse** +**Reusable Resources** -* Tests (reusable with `` argument) -* Action Group (reusable with including ``, or extending ``) -* Pages (reusable with reference `{{PageDefinition.url}}`) -* Sections (reusable with reference `{{SectionDefinition.elementDefinition}}`) -* Data Entities (reusable with reference `"` or extending ``) +* Tests (reusable with `` argument) +* Action Group (reusable with including ``, or extending ``) +* Pages (reusable with reference `{{PageDefinition.url}}`) +* Sections (reusable with reference `{{SectionDefinition.elementDefinition}}`) +* Data Entities (reusable with reference `"` or extending ``)
-Avoid using resources that are marked as **Deprecated**. Usually there's a replacement provided for deprecated resource. +Avoid using resources that are marked as **Deprecated**. Usually there is a replacement provided for a deprecated resource.
### Extract repetitive Actions -Instead of writing a few of Tests that perform mostly the same actions, you should thing about [Action group] that is a container for repetitive Actions. +Instead of writing a few of Tests that perform mostly the same actions, you should thing about [Action group] that is a container for repetitive Actions. If each run needs different data, use `` to inject necessary information. We recommend to keep Action Groups having single responsibility, for example `AdminLoginActionGroup`, which expected outcome is being logged in as Administrator when [Action group] is executed. ## Contribute -Althought Magento Core team and Contributors join their forces to cover most of the features with tests, it's impossible to have this done that quick. +Althought the Magento Core team and Contributors join forces to cover most of the features with tests, it is impossible to have this done quickly. If you've covered Magento Core feature with Functional Tests - you are more than welcome to contribute. -You can also help with [MFTF Test Migration] to get the experience and valuable feedback from other community members and maintainers. +You can also help with MFTF Test Migration to get the experience and valuable feedback from other community members and maintainers. ## Action group @@ -129,20 +129,20 @@ Use the _Foo.camelCase_ naming convention, which is similar to _Classes_ and _cl Use an upper case first letter for: -- File names. Example: _StorefrontCreateCustomerTest.xml_ -- Test name attributes. Example: `` -- Data entity names. Example: `` -- Page name. Example: `` -- Section name. Example: `
` -- Action group name. Example: `` +* File names. Example: _StorefrontCreateCustomerTest.xml_ +* Test name attributes. Example: `` +* Data entity names. Example: `` +* Page name. Example: `` +* Section name. Example: `
` +* Action group name. Example: `` #### Lower case Use a lower case first letter for: -- Data keys. Example: `` -- Element names. Examples: `` -- Step keys. For example: `` +* Data keys. Example: `` +* Element names. Examples: `` +* Step keys. For example: `` ## Page object @@ -180,9 +180,9 @@ Define these three elements and reference them by name in the tests. 1. Keep your tests short and granular for target testing, easier reviews, and easier merge conflict resolution. It also helps you to identify the cause of test failure. 1. Use comments to keep tests readable and maintainable: - - Keep the inline `` and [``] tags up to date. + * Keep the inline `` and [``] tags up to date. It helps to inform the reader of what you are testing and to yield a more descriptive Allure report. - - Explain in comments unclear or tricky test steps. + * Explain in comments unclear or tricky test steps. 1. Refer to [sections] instead of writing selectors. ## Test step merging order diff --git a/docs/configuration.md b/docs/configuration.md index 89ade5e9b..a7b81c7c9 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -34,7 +34,7 @@ MAGENTO_BACKEND_NAME=admin_12346 ### MAGENTO_BACKEND_BASE_URL -(Optional) If you are running Admin Panel on separate domain, you may need to specify this value: +(Optional) If you are running the Admin Panel on separate a domain, specify this value: Example: diff --git a/docs/introduction.md b/docs/introduction.md index 2c22854a1..53b763d8c 100644 --- a/docs/introduction.md +++ b/docs/introduction.md @@ -1,26 +1,26 @@ # Introduction to the Magento Functional Testing Framework -The **Magento Functional Tesitng Framework** (MFTF) is framework to perform end-to-end acceptance testing. Tests are performed in real web browser (eg. Google Chrome) just like the real user of the Magento store. +The Magento Functional Tesitng Framework (MFTF) is a framework used to perform automated end-to-end functional testing. ## Goals -- Facilitate functional testing and minimize the effort it takes to perform regression testing. -- Enable extension developers to provide the Functional Tests to offered extensions. -- Having common standard of Quality Assurrance between Magento, Extension Developers and System Intergrators. +- To facilitate functional testing and minimize the effort it takes to perform regression testing. +- Enable extension developers to provide the Functional Tests to offered extensions. +- Ensuring a common standard of quality between Magento, Extension Developers and System Intergrators. -**MFTF also focuses on** +MFTF also focuses on -- **Traceability** for clear logging and reporting capabilities. -- **Modularity** to run tests based on installed modules and extensions. -- **Customizability** for existing tests. -- **Readability** using clear and declarative XML test steps. -- **Maintainability** based on simple test creation and overall structure. +- **Traceability** for clear logging and reporting capabilities. +- **Modularity** to run tests based on installed modules and extensions. +- **Customizability** for existing tests. +- **Readability** using clear and declarative XML test steps. +- **Maintainability** based on simple test creation and overall structure. ## Audience -- **Contributors**: Tests build their confidence about the results of changes introduced to the platform. -- **Extension Developers**: Can adjust expected behaviour according to their customizations. -- **System Integrators**: MFTF coverage provided out-of-the-box with Magento is solid base for Acceptance / Regression Tests. +- **Contributors**: Tests build confidence about the results of changes introduced to the platform. +- **Extension Developers**: Can adjust expected behaviour according to their customizations. +- **System Integrators**: MFTF coverage provided out-of-the-box with Magento is solid base for Acceptance / Regression Tests. ## MFTF tests @@ -52,7 +52,6 @@ Test └── ... ``` -
We are actively developing functional tests. Check out the [MFTF Test Migration][] repository. @@ -61,30 +60,27 @@ We are actively developing functional tests. Check out the [MFTF Test Migration] ## Use cases -* **Contributor** changes the core behaviour, fixing the annoing bug. - He wants to have automated "supervisor" which is going to verify his work continuously across the stages of bug fixing. Finally, when fix is done - Functional Test is also proof of work done. - -* **Extension Developer** offers extension that changes core behaviour. - He can easily write new tests to make sure that after enabling the feature, Magento behaves properly. Everything with just extending existing tests. As a result he don't need to write coverage from scratch. - -* **Integration Agency** maintains Client's e-commerce. - They are able to customize tests delivered with Magento core to follow customizations implemented to Magento. After each upgrade they can just run the MFTF tests to know that no regression was introduced. - +- Contributor: changes the core behaviour, fixing the annoing bug. + He wants to have automated "supervisor" which is going to verify his work continuously across the stages of bug fixing. Finally, when fix is done - Functional Test is also proof of work done. +- Extension Developer: offers extension that changes core behaviour. + He can easily write new tests to make sure that after enabling the feature, Magento behaves properly. Everything with just extending existing tests. As a result he don't need to write coverage from scratch. +- Integration Agency: maintains Client's e-commerce. + They are able to customize tests delivered with Magento core to follow customizations implemented to Magento. After each upgrade they can just run the MFTF tests to know that no regression was introduced. ## MFTF output -- Generated PHP Codeception tests -- Codeception results and console logs -- Screenshots and HTML failure report -- Allure formatted XML results -- Allure report dashboard of results +- Generated PHP Codeception tests +- Codeception results and console logs +- Screenshots and HTML failure report +- Allure formatted XML results +- Allure report dashboard of results ## Find your MFTF version There are two options to find out your MFTF version: -- using the MFTF CLI -- using the Composer CLI +- using the MFTF CLI +- using the Composer CLI All the Command Line commands needs to be executed from `` diff --git a/docs/update.md b/docs/update.md index 5ede6a27d..ebd096158 100644 --- a/docs/update.md +++ b/docs/update.md @@ -1,20 +1,15 @@ # Update the Magento Functional Testing Framework
- Both Magento `2.2` and `2.3` supports MFTF `2.5.3` ([Find your version][] of the MFTF). -
+Tests and the Framework itself are stored in different repositories. -**Tests and the Framework itself are stored in different repositories.** - -* Tests are stored in Module's directory. -* The MFTF is installed separately (usually as a Composer dependency) - -While pulling the latest Magento codebase, you are going to get Tests and it's dependencies (eg. Action Groups). +* Tests are stored in Module's directory. +* MFTF is installed separately (usually as a Composer dependency) -To understand types of update - please follow the [Versioning][] page. +To understand different types of update - please follow the [Versioning][] page. ## Patch version update @@ -33,11 +28,11 @@ Takes place when **second** digit of version number changes. 1. When updating from versions below `2.5.0`, verify [WYSIWYG settings][] 1. You may need to run the `upgrade:tests` using `vendor/bin/mftf upgrade:tests app` -## Always after update +## After updating -1. It's good to regenerate your IDE Schema Definition catalog with `vendor/bin/mftf generate:urn-catalog .idea/` -1. Update your own tests, including data, metadata and other resoruces. Validate if they contain tags that are unsupported in the newer version. -1. As soon as possible - remove the references to resources (ActionGroups, Sections, Tests) marked as deprecated. +1. It is a good idea to regenerate your IDE Schema Definition catalog with `vendor/bin/mftf generate:urn-catalog .idea/` +1. Update your tests, including data, metadata and other resoruces. Check if they contain tags that are unsupported in the newer version. +1. Remove the references to resources (ActionGroups, Sections, Tests) marked as deprecated. [Changelog]: https://github.com/magento/magento2-functional-testing-framework/blob/master/CHANGELOG.md