Appearance
Allure Reqnroll configuration
This page describes the configuration options that affect the behavior of Allure Reqnroll.
By default, Allure Reqnroll tries to read the allureConfig.json
file in the same directory where the test assembly is located. To make sure the file is present there, edit the file properties in your IDE or manually in your *.csproj
file and set the corresponding item's CopyToOutputDirectory
to either Always
or PreserveNewest
. For example:
xml
<Project Sdk="Microsoft.NET.Sdk">
<!-- ... -->
<ItemGroup>
<None Update="allureConfig.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project>
Alternatively, use the ALLURE_CONFIG
environment variable to specify a relative or absolute path of the configuration file.
INFO
Many parameters for Allure Reqnroll are regular expressions. By default, such parameters will be automatically surrounded with ^
and $
and interpreted with the default flags.
For more control over the regular expression processing, wrap it with forward slashes and add supported flags, for example: "/^allure.label.suite:(.+)$/i"
.
allure.directory
Path to the directory where Allure Reqnroll will save the test results, see How it works. If the directory does not exist, it will be created. Defaults to allure-results
.
Note that the path is treated as relative to the build output directory of the project. When building and running tests from an IDE, this is typically different from the solution folder. Multiple ../
elements may be needed if you want to put the test results into a directory in the solution folder.
json
{
"allure": {
"directory": "../../../../../allure-results"
}
}
allure.links
List of patterns that can be used to construct full URLs from short identifiers.
Each pattern must be a string containing a placeholder surrounded by curly brackets, for example: {issue}
. When processing a link, Allure Reqnroll selects the pattern whose placeholder matches the link type (as specified using the Link
arguments or the allure.gherkinPatterns.links
patterns). The placeholder is then replaced by the short identifier.
The code below represents the default values used by Allure Reqnroll. With this configuration, the link BUG-123
of type issue
will be translated to https://issues.example.com/BUG-123
.
json
{
"allure": {
"links": [
"https://issues.example.com/{issue}",
"https://tms.example.com/{tms}",
"https://jira.example.com/browse/{jira}"
]
}
}
allure.failExceptions
A list of exception types representing assertion failures.
In case of an exception that matches one of the listed classes, the Failed status is assigned to the test, step, or fixture. In case of any other exception, the Broken status is assigned. When looking for matches, Allure Reqnroll uses not only the exception class's own full name but also all its interfaces and base classes.
The default list includes the base classes and interfaces that could be thrown by various runners compatible with Reqnroll: NUnit.Framework.AssertionException
, Xunit.Sdk.IAssertionException
, Xunit.Sdk.XunitException
, Microsoft.VisualStudio.TestTools.UnitTesting.AssertFailedException
. The setting, if not empty, overrides the default list.
With the example configuration below, a test will be considered failed if it throws Xunit.Sdk.XunitException
, MyNamespace.MyCustomException
, or anything that derives from them. At the same time, any other exception will make the test broken.
json
{
"allure": {
"failExceptions": ["Xunit.Sdk.XunitException", "MyNamespace.MyCustomException"]
}
}
allure.gherkinPatterns.stepArguments
Configuration options that affect how Allure Reqnroll processes data tables found in Gherkin files.
To enable the processing of Horizontal data tables only, set
createFromDataTables
totrue
.To enable the processing of both Horizontal data tables and Vertical data tables, set
createFromDataTables
totrue
and specifynameColumn
andvalueColumn
— the regular expressions for matching the vertical tables' headers.
The code below represents the default values used by Allure Reqnroll. With this configuration, a two-columns table with the columns “Parameter” and “Value” will be processed, but a table with any other columns won't, even if there happens to be two of them.
json
{
"allure": {
"gherkinPatterns": {
"stepArguments": {
"createFromDataTables": true,
"nameColumn": "/^parameter$/i",
"valueColumn": "/^value$/i"
}
}
}
}
allure.gherkinPatterns.grouping.behaviors
Regular expressions for Gherkin tags that can be used to set a test's epic and story, as part of Allure's behavior-based hierarchy.
The code below represents the default values used by Allure Reqnroll. With this configuration, a feature with the Gherkin tag @allure.epic:UI
will be added to the “UI” epic.
json
{
"allure": {
"gherkinPatterns": {
"grouping": {
"behaviors": {
"epic": "allure\\.epic:(.+)",
"story": "allure\\.story:(.+)"
}
}
}
}
}
allure.gherkinPatterns.grouping.suites
Regular expressions for Gherkin tags that can be used to set a test's suites, as part of Allure's suite-based hierarchy.
The code below represents the default values used by Allure Reqnroll. With this configuration, a feature with the Gherkin tag @allure.suite:TestUI
will be added to the “TestUI” suite.
json
{
"allure": {
"gherkinPatterns": {
"grouping": {
"suites": {
"parentSuite": "allure\\.parentSuite:(.+)",
"suite": "allure\\.suite:(.+)",
"subSuite": "allure\\.subSuite:(.+)"
}
}
}
}
}
allure.gherkinPatterns.metadata
Regular expressions for Gherkin tags that can be used to add an arbitrary label for the test, as well as its owner and severity specifically.
The label
regular expression must contain two capture groups. The two captured texts will be used as the name and the value for the label.
The owner
and severity
regular expressions must contain one capture group. The captured text will be used as the value for the label.
The code below represents the default values used by Allure Reqnroll. With this configuration:
- the Gherkin tag
@allure.label.language:csharp
will add a label with the name “language” and the value “csharp”, - the Gherkin tag
@allure.owner:JohnDoe
will set the test's owner to “JohnDoe”, - the Gherkin tag
@critical
will set the test's severity to “critical”.
json
{
"allure": {
"gherkinPatterns": {
"metadata": {
"label": "allure\\.label\\.([^:]+):(.+)",
"owner": "allure\\.owner:(.+)",
"severity": "(normal|blocker|critical|minor|trivial)"
}
}
}
}
allure.gherkinPatterns.links
Regular expressions for Gherkin tags that can be used to add a link of one of the standard types: “link”, “issue”, or “tms”.
The code below represents the default values used by Allure Reqnroll. With this configuration, the Gherkin tag @allure.issue:BUG-123
will add a link “BUG-123” of type “issue”. Optionally, it can then be processed according to the allure.links
patterns.
json
{
"allure": {
"gherkinPatterns": {
"links": {
"link": "allure\\.link:(.+)",
"issue": "allure\\.issue:(.+)",
"tms": "allure\\.tms:(.+)"
}
}
}
}