An Allure adapter for NUnit.
- Learn more about Allure Report at https://allurereport.org
- 📚 Documentation – discover official documentation for Allure Report
- ❓ Questions and Support – get help from the team and community
- 📢 Official announcements – stay updated with our latest news and updates
- 💬 General Discussion – engage in casual conversations, share insights and ideas with the community
- 🖥️ Live Demo — explore a live example of Allure Report in action
- Install the Allure.NUnit package.
- Configure it via allureConfi 8FB0 g.json.
- Apply the
[Allure.NUnit.AllureNUnit]attribute to test fixtures. - Use other attributes from
Allure.NUnit.Attributesif needed. - Use the functions from
Allure.Net.Commons.AllureApiif needed.
Learn more from the documentation for Allure NUnit.
Some examples are available here.
Use the attributes in Allure.Net.Commons.Attributes instead of Allure.NUnit.Attributes. Read more details here.
In most cases, the migration is as simple as swapping the using directive:
- using Allure.NUnit.Attributes;
+ using Allure.Net.Commons.Attributes;
using Allure.NUnit;
using NUnit.Framework;
[AllureFeature("My feature")]
class MyTestClass
{
[AllureStory("My story")]
[Test]
public void MyTestMethod()
{
}
}In some cases, the usage must be updated. They are listed below.
Set Append to keep the concatenation behavior:
- using Allure.NUnit.Attributes;
+ using Allure.Net.Commons.Attributes;
using NUnit.Framework;
-[AllureDescription("First description")]
+[AllureDescription("First description", Append = true)]
class MyTestClass
{
- [AllureDescription("Second description")]
+ [AllureDescription("Second description", Append = true)]
[Test]
public void MyTestMethod()
{
}
}Use [AllureDescriptionHtml] instead of setting Html:
- using Allure.NUnit.Attributes;
+ using Allure.Net.Commons.Attributes;
using NUnit.Framework;
class MyTestClass
{
- [AllureDescription("<p>Html text</p>", Html = true)]
+ [AllureDescriptionHtml("<p>Html text</p>")]
[Test]
public void MyTestMethod()
{
}
}Use multiple [AllureFeature] or [AllureStory] attributes instead:
- using Allure.NUnit.Attributes;
+ using Allure.Net.Commons.Attributes;
-[AllureFeature("Feature 1", "Feature 2")]
+[AllureFeature("Feature 1")]
+[AllureFeature("Feature 2")]
-[AllureStory("Story 1", "Story 2")]
+[AllureStory("Story 1")]
+[AllureStory("Story 2")]
class MyTestClass
{
}Pass the URL or ID as the only positional argument. Use the Title property to pass the display
text. Also, use [AllureTmsItem] instead of [AllureTms]:
- using Allure.NUnit.Attributes;
+ using Allure.Net.Commons.Attributes;
-[AllureLink("Homepage", "https://allurereport.org")]
+[AllureLink("https://allurereport.org", Title = "Homepage")]
-[AllureIssue("ISSUE-123", "123")]
+[AllureIssue("123", Title = "ISSUE-123")]
-[AllureTms("TMS-345", "345")]
+[AllureTmsItem("345", Title = "TMS-345")]
class MyTestClass
{
}Always pass an explicit value as the argument:
- using Allure.NUnit.Attributes;
+ using Allure.Net.Commons.Attributes;
-[AllureSeverity]
+[AllureSeverity(SeverityLevel.normal)]
class MyTestClass
{
}Use [AllureParameter] with Name and Ignore correspondingly:
- using Allure.NUnit.Attributes;
+ using Allure.Net.Commons.Attributes;
class MyTestClass
{
[AllureStep]
public void MyStepMethod(
- [Name("Foo")] int parameter1,
+ [AllureParameter(Name = "Foo")] int parameter1,
- [Skip] int parameter2
+ [AllureParameter(Ignore = true)] int parameter2
)
{
}
}Attributes from the Allure.NUnit.Attributes namespace will be deprecated in one of the future
releases. Please, migrate to Allure.Net.Commons.Attributes.
Starting from 2.12.0, the namespace NUnit.Allure is deprecated. The API in
that namespace still works, but it will be removed in the future. Please use
Allure.NUnit instead.
The
[NUnit.Allure.Core.AllureNUnit]attribute should be replaced with[Allure.NUnit.AllureNUnit]:
using Allure.NUnit; // <- Note the namespace
using NUnit.Framework;
[AllureNUnit]
class MyTests
{
[Test]
public void TestMethod()
{
/* ... */
}
}The following user API methods are now deprecated:
- In
NUnit.Allure.Core.AllureExtensions:- All overloads of
WrapInStep- useAllure.Net.Commons.AllureApi.Stepinstead. WrapSetUpTearDownParams- had no effect; can safely be replaced with the direct call of the provided delegate.
- All overloads of
NUnit.Allure.Core.AllureNUnitAttribute- useAllure.NUnit.AllureNUnitAttributeinstead.- Other classes and methods in
NUnit.Allure- change the namespace toAllure.NUnit.
The following previously deprecated user API classes and methods were removed:
- In
NUnit.Allure.Core.AllureExtensions:AddScreenDiff- useAllure.Net.Commons.AllureApi.AddScreenDiffinstead.
NUnit.Allure.Core.AllureNUnitAttribute's constructor overload that takesbool wrapIntoStep- thewrapIntoStepparameter had no effect and can be safely removed now.- In
NUnit.Allure.Core.AllureNUnitHelper:WrapInStep- useAllure.Net.Commons.AllureApi.Stepinstead.
NUnit.Allure.Core.StepsHelper- use functions fromAllure.Net.Commons.AllureApiandAllure.Net.Commons.ExtendedApiinstead.- In
Allure.Net.Commons.AllureLifecycle:AddAttachment- useAllure.Net.Commons.AllureApi.AddAttachmentinstead.AddScreenDiff- useAllure.Net.Commons.AllureApi.AddScreenDiffinstead.
Allure.Net.Commons.Steps.CoreStepsHelper- use functions fromAllure.Net.Commons.AllureApiandAllure.Net.Commons.ExtendedApiinstead.
If you're developing on a Mac machine with Apple silicon, make sure you have Rosetta installed. Follow this article for the instructions: https://support.apple.com/en-us/HT211861
You may also install Rosetta via the CLI:
/usr/sbin/softwareupdate --install-rosetta --agree-to-license