Skip to content

Commit d29d870

Browse files
committed
Merge branch 'develop' into db_mftf_testlist_md
2 parents e791d01 + d43aad5 commit d29d870

File tree

94 files changed

+1423
-131
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

94 files changed

+1423
-131
lines changed

.github/CONTRIBUTING.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ All contributors are required to submit a click-through form to agree to the ter
4040

4141
- Unit/integration test coverage
4242
- Proposed documentation update.
43-
For the documentation contribution guidelines, see [DevDocs Contributing][devdocs].
43+
For the documentation contribution guidelines, see [DOCUMENTATION_TEMPLATE][].
4444
7. For large features or changes, [open an issue][issue] to discuss first.
4545
This may prevent duplicate or unnecessary effort, and it may gain you some additional contributors.
4646
8. To report a bug, [open an issue][issue], and follow [guidelines about bugfix issues][issue reporting].
@@ -160,7 +160,7 @@ Label| Description
160160
[create issue]: https://help.github.com/articles/creating-an-issue/
161161
[create pr]: https://help.github.com/articles/creating-a-pull-request/
162162
[Definition of Done]: https://devdocs.magento.com/guides/v2.2/contributor-guide/contributing_dod.html
163-
[devdocs]: https://github.com/magento/devdocs/blob/master/.github/CONTRIBUTING.html
163+
[DOCUMENTATION_TEMPLATE]: https://github.com/magento/devdocs/blob/master/.github/DOCUMENTATION_TEMPLATE.md
164164
[existing issues]: https://github.com/magento/magento2-functional-testing-framework/issues?q=is%3Aopen+is%3Aissue
165165
[existing PRs]: https://github.com/magento/magento2-functional-testing-framework/pulls?q=is%3Aopen+is%3Apr
166166
[GitHub documentation]: https://help.github.com/articles/syncing-a-fork
@@ -171,4 +171,4 @@ Label| Description
171171
[Magento Contributor Agreement]: http://www.magento.com/legaldocuments/mca
172172
[MFTF repository]: https://github.com/magento/magento2-functional-testing-framework
173173
[open new issue]: https://github.com/magento/magento2-functional-testing-framework/issues/new
174-
[Travis CI]: https://travis-ci.com/magento/magento2-functional-testing-framework/pull_requests
174+
[Travis CI]: https://travis-ci.com/magento/magento2-functional-testing-framework/pull_requests

.github/DOCUMENTATION_TEMPLATE.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# How to contribute to MFTF docs
2+
3+
We welcome contributions to the MFTF documentation, which is kept within the `docs/` folder in this repository.
4+
This page describes the submitting process and serves as a template for a properly written content.
5+
The contribution workflow is the same as submitting code.
6+
7+
1. Create a branch from the `develop` branch in the [MFTF repository][].
8+
1. Make edits/additions/deletions as needed. Read the [Basic Template][] for tips on how to write with Markdown.
9+
1. Submit your pull request to the `develop` branch.
10+
11+
Once submitted, a member of the documentation team will review and merge it.
12+
We will inform you if it needs any additional processing.
13+
14+
The documentation in this repository is used as the source for the [MFTF documentation][].
15+
Any changes to the table of contents will need to be made through a separate pull request in the regular [Magento Developer documentation repository][].
16+
17+
Read more about how to [Contribute to Magento Devdocs][].
18+
19+
<!-- For readability, we abstract the link URLS to the bottom of the page. The extra set of square brackets denotes it is a link, rather than plain brackets. >
20+
21+
<!-- Link Definitions -->
22+
[Magento Developer documentation repository]: https://github.com/magento/devdocs/blob/master/_data/toc/mftf.yml
23+
[MFTF repository]: https://github.com/magento/magento2-functional-testing-framework
24+
[Contribute to Magento Devdocs]: https://github.com/magento/devdocs/blob/master/.github/CONTRIBUTING.md
25+
[MFTF documentation]: https://devdocs.magento.com/mftf/docs/introduction.html
26+
[Basic Template]: https://devdocs.magento.com/guides/v2.3/contributor-guide/templates/basic_template.html

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,5 @@ codeception.yml
1515
dev/tests/functional/MFTF.suite.yml
1616
dev/tests/functional/_output
1717
dev/mftf.log
18-
dev/tests/mftf.log
18+
dev/tests/mftf.log
19+
dev/tests/docs/*

CHANGELOG.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,42 @@
11
Magento Functional Testing Framework Changelog
22
================================================
33

4+
2.4.1
5+
-----
6+
* Traceability
7+
* XSD Schema validation is now enabled by default in `generate:tests`, `run:test`, `run:failed`, `run:group`
8+
* `--debug` option for the above commands has been updated to include different debug levels
9+
* See DevDocs for details
10+
11+
### Fixes
12+
* Fixed an issue where `skipReadiness` attribute would cause false XSD Schema validation errors.
13+
14+
2.4.0
15+
-----
16+
### Enhancements
17+
* Maintainability
18+
* Added new `mftf static-checks` command to run new static checks against the attached test codebase
19+
* See DevDocs for details
20+
* Added new `mftf generate:docs` command that generates documentation about attached test codebase
21+
* See DevDocs for details
22+
* Traceability
23+
* Allure reports for tests now contain collapsible sections for `actionGroup`s used in execution.
24+
25+
### Fixes
26+
* Fixed an issue where `magentoCli` would treat `argument="0"` as a null value.
27+
* Fixed an issue where `amOnPage` and `waitForPwaElementVisible` would not utilize the `timeout` attribute correctly when MagentoPwaWebDriver is enabled.
28+
* Fixed an issue where invalid XML characters would cause Allure to throw an exception without a resulting report.
29+
* Fixed `codeception.dist.yml` configuration for keeping previous test run results.
30+
* PHP Notices are no longer thrown when XML is missing non-necessary attributes.
31+
* Removed unusable `fillSecretField` action from schema.
32+
33+
### GitHub Issues/Pull requests:
34+
* [#338](https://github.com/magento/magento2-functional-testing-framework/pull/338) -- Return exit codes of process started by 'run:test', 'run:group' or 'run:failed' command
35+
* [#333](https://github.com/magento/magento2-functional-testing-framework/pull/333) -- Added Nginx specific settings to getting started doc
36+
* [#332](https://github.com/magento/magento2-functional-testing-framework/pull/332) -- executeInSelenium action does not generate proper code
37+
* [#318](https://github.com/magento/magento2-functional-testing-framework/pull/318) -- Reduce cyclomatic complexity in Problem Methods
38+
* [#287](https://github.com/magento/magento2-functional-testing-framework/pull/287) -- Update requirements to include php7.3 support
39+
440
2.3.14
541
-----
642
### Enhancements

bin/mftf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ try {
2929
try {
3030
$application = new Symfony\Component\Console\Application();
3131
$application->setName('Magento Functional Testing Framework CLI');
32-
$application->setVersion('2.3.14');
32+
$application->setVersion('2.4.1');
3333
/** @var \Magento\FunctionalTestingFramework\Console\CommandListInterface $commandList */
3434
$commandList = new \Magento\FunctionalTestingFramework\Console\CommandList;
3535
foreach ($commandList->getCommands() as $command) {

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "magento/magento2-functional-testing-framework",
33
"description": "Magento2 Functional Testing Framework",
44
"type": "library",
5-
"version": "2.3.14",
5+
"version": "2.4.1",
66
"license": "AGPL-3.0",
77
"keywords": ["magento", "automation", "functional", "testing"],
88
"config": {

composer.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dev/tests/_bootstrap.php

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
true,
3333
\Magento\FunctionalTestingFramework\Config\MftfApplicationConfig::UNIT_TEST_PHASE,
3434
true,
35-
false
35+
\Magento\FunctionalTestingFramework\Config\MftfApplicationConfig::LEVEL_NONE
3636
);
3737

3838
// Load needed framework env params
@@ -60,6 +60,28 @@
6060
defined('TESTS_BP') || define('TESTS_BP', __DIR__);
6161
defined('TESTS_MODULE_PATH') || define('TESTS_MODULE_PATH', TESTS_BP . $RELATIVE_TESTS_MODULE_PATH);
6262
defined('MAGENTO_BP') || define('MAGENTO_BP', __DIR__);
63+
define('DOCS_OUTPUT_DIR',
64+
FW_BP .
65+
DIRECTORY_SEPARATOR .
66+
"dev" .
67+
DIRECTORY_SEPARATOR .
68+
"tests" .
69+
DIRECTORY_SEPARATOR .
70+
"unit" .
71+
DIRECTORY_SEPARATOR .
72+
"_output"
73+
);
74+
define('RESOURCE_DIR',
75+
FW_BP .
76+
DIRECTORY_SEPARATOR .
77+
"dev" .
78+
DIRECTORY_SEPARATOR .
79+
"tests" .
80+
DIRECTORY_SEPARATOR .
81+
"unit" .
82+
DIRECTORY_SEPARATOR .
83+
"Resources"
84+
);
6385

6486
$utilDir = DIRECTORY_SEPARATOR . 'Util'. DIRECTORY_SEPARATOR . '*.php';
6587

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
namespace tests\unit\Magento\FunctionalTestFramework\Test\Util;
7+
8+
use AspectMock\Test as AspectMock;
9+
use Magento\FunctionalTestingFramework\Test\Util\ActionGroupAnnotationExtractor;
10+
use PHPUnit\Framework\TestCase;
11+
use tests\unit\Util\TestLoggingUtil;
12+
13+
class ActionGroupAnnotationExtractorTest extends TestCase
14+
{
15+
/**
16+
* Before test functionality
17+
* @return void
18+
*/
19+
public function setUp()
20+
{
21+
TestLoggingUtil::getInstance()->setMockLoggingUtil();
22+
}
23+
24+
/**
25+
* Annotation extractor takes in raw array and condenses it to expected format
26+
*
27+
* @throws \Exception
28+
*/
29+
public function testActionGroupExtractAnnotations()
30+
{
31+
// Test Data
32+
$actionGroupAnnotations = [
33+
"nodeName" => "annotations",
34+
"description" => [
35+
"nodeName" => "description",
36+
"value" => "someDescription"
37+
],
38+
"page" => [
39+
"nodeName" => "page",
40+
"value" => "somePage"
41+
]
42+
];
43+
// Perform Test
44+
$extractor = new ActionGroupAnnotationExtractor();
45+
$returnedAnnotations = $extractor->extractAnnotations($actionGroupAnnotations, "fileName");
46+
47+
// Asserts
48+
49+
$this->assertEquals("somePage", $returnedAnnotations['page']);
50+
$this->assertEquals("someDescription", $returnedAnnotations['description']);
51+
}
52+
53+
/**
54+
* Annotation extractor should throw warning when required annotations are missing
55+
*
56+
* @throws \Exception
57+
*/
58+
public function testActionGroupMissingAnnotations()
59+
{
60+
// Action Group Data, missing page and description
61+
$testAnnotations = [];
62+
// Perform Test
63+
$extractor = new ActionGroupAnnotationExtractor();
64+
AspectMock::double($extractor, ['isCommandDefined' => true]);
65+
$extractor->extractAnnotations($testAnnotations, "fileName");
66+
67+
// Asserts
68+
TestLoggingUtil::getInstance()->validateMockLogStatement(
69+
'warning',
70+
'DEPRECATION: Action Group File fileName is missing required annotations.',
71+
[
72+
'actionGroup' => 'fileName',
73+
'missingAnnotations' => "description, page"
74+
]
75+
);
76+
}
77+
78+
/**
79+
* Annotation extractor should not throw warning when required
80+
* annotations are missing if command is not generate:docs
81+
*
82+
* @throws \Exception
83+
*/
84+
public function testActionGroupMissingAnnotationsNoWarning()
85+
{
86+
// Action Group Data, missing page and description
87+
$testAnnotations = [];
88+
// Perform Test
89+
$extractor = new ActionGroupAnnotationExtractor();
90+
$extractor->extractAnnotations($testAnnotations, "fileName");
91+
92+
// Asserts
93+
TestLoggingUtil::getInstance()->validateMockLogEmpty();
94+
}
95+
96+
/**
97+
* After class functionality
98+
* @return void
99+
*/
100+
public static function tearDownAfterClass()
101+
{
102+
TestLoggingUtil::getInstance()->clearMockLoggingUtil();
103+
}
104+
}

0 commit comments

Comments
 (0)