Annotations

This topic was updated due to the 2.2.0 MFTF release.

Annotations are essentially comments in the code. In PHP, they all are marked by a preceding @ symbol.

Within tests, annotations are contained within their own node.

Principles

The following conventions apply to annotations in the Magento Functional Testing Framework (MFTF):

  • All annotations are within an <annotations> element.
  • Each element within corresponds to a supported annotation type.
  • There is no distinction made in XML between Codeception annotations and Allure annotations.
  • Each annotation contains only one value. If multiple annotation values are supported and required each value requires a separate annotation.

Recommended use cases of the annotation types:

  • features - report grouping, a set of tests that verify a feature.
  • stories - report grouping, a set of tests that verify a story.
  • group - general functionality grouping.
  • title - description of the test purpose.
  • description - description of how the test achieves the purpose defined in the title.

Example

<annotations>
    <features value="Category Creation"/>
    <title value="Create a Category via Admin"/>
    <group value="category"/>
</annotations>

Reference

description

The <description> element is an implementation of a @Description Allure tag; Metadata for report.

Attribute Type Use
value string required

Example

<description value="Add Catalog via Admin"/>

features

The <features> element is an implementation of a @Features Allure tag.

<features> sets a string that will be displayed as a feature within the Allure report. Tests under the same feature are grouped together in the report.

Attribute Type Use
value string required

Example

<features value="Catalog"/>
<features value="Add/Edit"/>

group

The <group> element is an implementation of a @group Codeception tag.

<group> specifies a string to identify and collect tests together. Any test can be a part of multiple groups. The purpose of grouping is to create a set of test for a functionality or purpose, such as all cart tests or all slow tests and run them together locally.

Group values cannot collide with suite names.

Add <group value="skip"/> to the test if you want to skip it during test run.

Attribute Type Use Definition
value string required A value that is used to group tests. It should be lower case. skip is reserved to ignore content of the test and generate an empty test.

Example

<group value="category"/>

return

The <return> element is an implementation of a @return Codeception tag. It specifies what is returned from a test execution.

Attribute Type Use
value string required

Example

<return value="void"/>

severity

The <return> element is an implementation of a @Severity Allure tag; Metadata for report.

Attribute Type Use Acceptable values
value string required MINOR, AVERAGE, MAJOR, BLOCKER, CRITICAL

Example

<severity value="CRITICAL"/>

stories

The <stories> element is an implementation of a @Stories Allure tag. It has the same functionality as features, within the Story report group.

Attribute Type Use
value string required

Example

<stories value="Add Catalog"/>
<stories value="Edit Catalog"/>

testCaseId

The <testCaseId> element is an implementation of a @TestCaseId Allure tag. It specifies a ZephyrId for a test.

If the linkage is set up correctly in the Allure config, the test will have a hyperlink to the Zephyr test case in the report.

Learn more about setup instructions in Allure.

Attribute Type Use
value string required

Example

<testCaseId value="#"/>

title

The <title> element is an implementation of @Title Allure tag; Metadata for report.

Attribute Type Use
value string required

Example

<title value="Add Catalog"/>

useCaseId

The <useCaseId> element is an implementation of a @UseCaseId custom tag. It specifies the use case ID for a test and is ignored by Allure configuration at the moment, as Allure implementation is not complete.

Attribute Type Use
value string required

Example

<useCaseId value="USECASE-1"/>