Annotations in the Magento Functional Testing Framework

This topic was updated due to the 1.0.0 MFTF release.

This topic contains a reference list of available annotations in the MFTF cests.

Overview

Annotations are essentially comments in the code. (In PHP, they all are marked by a preceding @ symbol.) Within an XML test file, annotations are contained within their own node.

Principles

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

Example

<annotations>
 
       <features value="Category Creation"/>

       <title value="Create a Category via Admin"/>

       <group value="category"/>

       <env value="chrome"/>

       <env value="firefox"/>

       <env value="phantomjs"/>
 
</annotations>

Reference

description

Implementation of an Allure tag @Description

Metadata for report.

Attribute Type Use
value string required

Example

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

Generated PHP code:

@Description("Add Catalog via Admin")


env

Implementation of a Codeception tag @env

Specifies the web driver under which the test can run. There can be multiple env annotations to show that the test is compatible with multiple web drivers (e.g Chrome, Firefox, PhantomJS).

Attribute Type Use
value string required

Example

<env value="chrome"/>

Generated PHP code:

@env chrome


features

Implementation of an 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"/>

Generated PHP code:

@Features({"Catalog", "Add/Edit"})


group

Implementation of a 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 purpose (e.g. all Cart tests, all Slow tests) and run them together.

Attribute Type Use
value string required

Example

<group value="catalog"/>

Generated PHP code:

@group catalog


return

Implementation of a Codeception tag @return

Specifies what is returned from a test execution.

Attribute Type Use
value string required

Example

<return value="void"/>

Generated PHP code:

@return void


severity

Implementation of an Allure tag @Severity

Metadata for report.

Attribute Type Use Acceptable values
value string required "BLOCKER", "CRITICAL", "NORMAL", "MINOR", "TRIVIAL"

Example

<severity value="CRITICAL"/>

Generated PHP code:

@Severity(level = SeverityLevel::CRITICAL)


stories

Implementation of an Allure tag @Stories

Same functionality as features, within the Story report group.

Attribute Type Use
value string required

Example

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

Generated PHP code:

@Stories({"Add Catalog", "Edit Catalog"})


testCaseId

Implementation of an Allure tag @TestCaseId

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

Lean more about setup instructions in Allure

Attribute Type Use
value string required

Example

<testCaseId value="#"/>

Generated PHP code:

@TestCaseId("#")


useCaseId

Implementation of a custom tag @UseCaseId

Specifies Use Case Id for a test.

Ignored by Allure configuration at the moment, as Allure implementation is not complete.

Attribute Type Use
value string required

Example

<useCaseId value="USECASE-1"/>

Generated PHP code:

@UseCaseId("USECASE-1")


title

Implementation of an Allure tag @Title

Metadata for report.

Attribute Type Use
value string required

Example

<title value="Add Catalog"/>

Generated PHP code:

@Title("Add Catalog")