# Metadata
Metadata can be added to a test by using the meta()
function. The metadata can be added to both the test
and the fixture
.
Metadata added to a fixture
will be inherited by all tests coupled to that fixture to avoid having to declare metadata that is the same for all tests within the fixture multiple times.
import { t } from 'testcafe';
import { Severity } from 'testcafe-reporter-allure';
fixture('TestCafé Example Fixture - Documentation').page('http://devexpress.github.io/testcafe/example')
test.meta({
severity: Severity.TRIVIAL,
issue: 'TEST-ISSUE',
description: 'An example discription',
epic: 'Example Epic Ticket',
feature: 'Example Feature Ticket',
story: 'Example Story Ticket',
suite: 'Main Example Group',
// ... any other key: value property as custom metadata
})('Example test with metadata', async (t) => {
// Test Code
});
// Skipped test example
test.meta({
severity: Severity.TRIVIAL,
issue: 'TEST-ISSUE',
description: 'An example discription',
epic: 'Example Epic Ticket',
feature: 'Example Feature Ticket',
story: 'Example Story Ticket',
suite: 'Main Example Group',
skipReason: 'Skipped: Known product bug BUG-ISSUE-1'
// ... any other key: value property as custom metadata
}).skip('Example test with metadata', async (t) => {
// Test Code
});
// Skipped test example
test.meta({
severity: Severity.TRIVIAL,
issue: 'TEST-ISSUE',
description: 'An example discription',
epic: 'Example Epic Ticket',
feature: 'Example Feature Ticket',
story: 'Example Story Ticket',
suite: 'Main Example Group',
skipReason: 'Skipped: Not implemented'
// ... any other key: value property as custom metadata
}).skip('Example planned test', async (t) => {
// Test Code
});
test.meta({
severity: Severity.TRIVIAL,
issue: 'TEST-ISSUE',
description: 'An example discription',
epic: 'Example Epic Ticket',
feature: 'Example Feature Ticket',
story: 'Example Story Ticket',
suite: 'Main Example Group',
tags: ['automated', 'smoke', 'e2e']
// ... any other key: value property as custom metadata
})('Example test with metadata', async (t) => {
// Test Code
});
test.meta({
severity: Severity.TRIVIAL,
issue: 'TEST-ISSUE',
description: 'An example discription',
epic: 'Example Epic Ticket',
feature: 'Example Feature Ticket',
story: 'Example Story Ticket',
suite: 'Main Example Group',
tags: 'e2e'
// ... any other key: value property as custom metadata
})('Example test with metadata where tag can be a string', async (t) => {
// Test Code
});
# Pré-defined metadata
Metadata | Description |
---|---|
Severity | The severity values are dictated by the allure-js-commons (opens new window) package, these values are: blocker, critical, normal, minor, trivial ; |
Issue | A Jira Issue can be coupled to a test, creating a link within the Allure Report to the Jira Issue page. The URL to the Jira page can be set in the allure-js-commons (opens new window). |
Epic, Feature, Story | To sort the tests based on the epic , feature , and/or story , these metadata options can be used to form a tree structure. The tree is structured as follows: An epic can have multiple features, a feature can have multiple stories, and a story can have multiple tests. |
Suite | Within the Allure Report, the tests are organized by fixture by default. For a more expansive organization of the tests and fixtures, the suite parameter can be set. When the suite parameter is set within a test , a subcategory is created within the fixture that will group all tests that have the same suite parameter together. When the suite parameter is set within a fixture , a parent category is created that will group multiple fixtures that have the same suite parameter. |
skipReason | A test meta tag to allow showing skip reason in allure categories. |
tags | A test meta tag to allow showing tags in allure report. It is recommended to pass "tags" as an array of strings |
# Custom metadata
It is also possible to add custom metadata to a test
. These will be added as parameters to the Allure Report. These parameters do NOT have to be named otherMeta but do require to be a key-value pair of two strings. For example, adding a color parameter to a test: color: 'black'
will result in color: black
be added to the final Allure Report.
# Result
# Suite overview
If pré-defined metadata was used as in code example above, it will be added to the allure test result view.
# Example of a test result view for a passed test
# Example of a test result view for a skipped test
Skip reason will be shown as a message on test result overview:
Skip message can be used as a filter in allure categories view.
# Example of a test result view for a test with 'tags' metadata
# Categories
Example of a custom allure-categories.config.js
with skipReason
message to be in messageRegex
filter:
module.exports = [
{
name: 'Not automated',
messageRegex: '.*Not automated.*',
},
{
name: 'Known bugs',
messageRegex: '.*Known bug.*',
},
{
name: 'Automated',
matchedStatuses: ['failed', 'passed'],
},
];
Using allure-categories.config.js
with code above and skipReason
meta in skipped TestCafe tests will produce following categories:
This approach can result in simple code coverage report in your allure results.
← Configuration Steps →