![]() |
VOOZH | about |
dotnet add package Allure.Xunit --version 2.15.0
NuGet\Install-Package Allure.Xunit -Version 2.15.0
<PackageReference Include="Allure.Xunit" Version="2.15.0" />
<PackageVersion Include="Allure.Xunit" Version="2.15.0" />Directory.Packages.props
<PackageReference Include="Allure.Xunit" />Project file
paket add Allure.Xunit --version 2.15.0
#r "nuget: Allure.Xunit, 2.15.0"
#:package Allure.Xunit@2.15.0
#addin nuget:?package=Allure.Xunit&version=2.15.0Install as a Cake Addin
#tool nuget:?package=Allure.Xunit&version=2.15.0Install as a Cake Tool
👁 Nuget release
👁 Nuget downloads
An Allure adapter for xUnit.net.
Allure Xunit supports the following frameworks:
Install the Allure.Xunit package and run the tests normally. In many cases,
allure should start automatically. The result files are created in the
allure-results directory in the target directory.
If that didn't happen, check out the Why the Allure results directory is empty?
section.
Learn more from the documentation for Allure Xunit.
Some examples are available here.
Use the attributes in Allure.Net.Commons.Attributes instead of Allure.Xunit.Attributes. Read more details here.
In most cases, the migration is straightforward:
- using Allure.Xunit.Attributes;
+ using Allure.Net.Commons.Attributes;
using Xunit;
[AllureFeature("My feature")]
public class MyTestClass
{
[AllureStory("My story")]
[Fact]
public void MyTestMethod()
{
}
}
In some cases, the usage must be updated. Such cases are listed below.
[AllureFeature], [AllureStory] with multiple valuesUse multiple [AllureFeature] or [AllureStory] attributes instead:
- using Allure.Xunit.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")]
public class MyTestClass
{
}
[AllureLink], [AllureIssue]Pass the URL or ID as the only positional argument. Use the Title property to pass the display
text:
- using Allure.Xunit.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")]
public class MyTestClass
{
}
[AllureSeverity]Always pass an explicit value as the argument:
- using Allure.Xunit.Attributes;
+ using Allure.Net.Commons.Attributes;
-[AllureSeverity]
+[AllureSeverity(SeverityLevel.normal)]
public class MyTestClass
{
}
[Name] and [Skip]Use [AllureParameter] with Name and Ignore correspondingly:
- using Allure.Xunit.Attributes.Steps;
+ using Allure.Net.Commons.Attributes;
public class MyTestClass
{
[AllureStep]
public void MyStepMethod(
- [Name("Foo")] int parameter1,
+ [AllureParameter(Name = "Foo")] int parameter1,
- [Skip] int parameter2
+ [AllureParameter(Ignore = true)] int parameter2
)
{
}
}
[AllureId]Pass an integer value instead of a string:
- using Allure.Xunit.Attributes;
+ using Allure.Net.Commons.Attributes;
using Xunit;
public class MyTestClass
{
[Fact]
- [AllureId("102")]
+ [AllureId(102)]
public void MyTestMethod()
{
}
}
Overwrite argumentThe new attributes don't have an equivalent of the overwrite argument that removes the existing
metadata. You should rearrange the attributes to avoid duplicates:
-using Allure.Xunit.Attributes;
+using Allure.Net.Commons.Attributes;
using Xunit;
-[AllureEpic(["Epic 1"], true)]
public class TestClass
{
[Fact]
- [AllureEpic(["Epic 2"], true)]
+ [AllureEpic("Epic 2")]
public void Test1()
{
}
[Fact]
- [AllureEpic(["Epic 3"], true)]
+ [AllureEpic("Epic 3")]
public void Test1()
{
}
}
Attributes from the Allure.Xunit.Attributes namespace will be deprecated in one of the future
releases. Please, migrate to Allure.Net.Commons.Attributes.
Previously, the package contained a mix of Allure.Xunit and Allure.XUnit
namespaces. Starting from 2.12.0, you should only use Allure.Xunit. The API is
still accessible through the old namespace, but that access is deprecated now
and will be removed in the future.
The following user API classes are now deprecated:
Allure.XUnit.Attachments - use Allure.Xunit.Attachments instead.Allure.XUnit.Attributes.Steps - use their counterparts from
Allure.Xunit.Attributes.Steps.The following previously deprecated user API classes and methods were removed:
Using-style steps/fixtures:
Allure.Xunit.AllureAfterAllure.Xunit.AllureBeforeAllure.Xunit.AllureStepAllure.Xunit.AllureStepBaseUse the following alternatives instead:
Allure.Xunit.Attributes.Steps ([AllureAfter],
[AllureBefore], or [AllureStep])Allure.Net.Commons.AllureApi and
Allure.Net.Commons.ExtendedApiAllure.Xunit.AllureAttachments - use
Allure.Net.Commons.AllureApi.AddAttachment instead.
Allure.Xunit.Steps - use functions from
Allure.Net.Commons.AllureApi and Allure.Net.Commons.ExtendedApi instead.
In Allure.Xunit.Attributes:
AllureXunitAttribute - use Xunit.FactAttribute instead.AllureXunitTheoryAttribute - use Xunit.TheoryAttribute instead.In Allure.Net.Commons.AllureLifecycle:
AddAttachment - use Allure.Net.Commons.AllureApi.AddAttachment
instead.AddScreenDiff - use Allure.Net.Commons.AllureApi.AddScreenDiff
instead.Allure.Net.Commons.Steps.CoreStepsHelper - use functions from
Allure.Net.Commons.AllureApi and Allure.Net.Commons.ExtendedApi instead.
There is no more need to use the separate Allure.XUnit.StepExtensions package.
You should uninstall it and use attributes from the
Allure.Xunit.Attributes.Steps namespace directly.
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
We rely on Harmony (which in turn uses MonoMod.Core) to:
Those features might not work in some rare circumstances, especially when testing the Release configuration. If you're affected, try switching to Debug as a workaround.
Issue #369 contains some additional details.
If you run your tests, but there is no Allure results directory (or it's empty),
xUnit.net may have preferred another reporter instead of allure.
You can force xUnit.net to select the allure reporter by providing it to the
runner. For xunit.runner.visualstudio, it could be done with the
xUnit.ReporterSwitch run setting:
dotnet test <test-project-name> -- xUnit.ReporterSwitch=allure
Alternatively, you may provide that option via a .runsettings file:
<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
<xUnit>
<ReporterSwitch>allure</ReporterSwitch>
</xUnit>
</RunSettings>
dotnet test -s <path-to-runsettings> <test-project-name>
If you run the tests via an IDE, refer to that IDE's documentation to figure out how to provide a
.runsettingsfile.
Check the test logs. If Allure.Xunit has run, the following entry should exist:
[xUnit.net 00:00:00.53] Allure.Xunit: Allure reporter enabled
If you don't see xUnit.net logs, try increasing the verbosity level to
normalordetailed:dotnet test --logger 'console;verbosity=normal'
xUnit.net only uses one reporter per run. But Allure Xunit allows you to bypass that limitation. Learn more here.
A CI-specific reporter might be enabled in addition to Allure Xunit in some CI environments like Azure DevOps or TeamCity. The result is that both reporters become available to run. In such cases, xUnit.net may select any of them.
To fix that, make sure that xUnit.net always picks Allure Xunit.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 net5.0 was computed. net5.0-windows net5.0-windows was computed. net6.0 net6.0 was computed. net6.0-android net6.0-android was computed. net6.0-ios net6.0-ios was computed. net6.0-maccatalyst net6.0-maccatalyst was computed. net6.0-macos net6.0-macos was computed. net6.0-tvos net6.0-tvos was computed. net6.0-windows net6.0-windows was computed. net7.0 net7.0 was computed. net7.0-android net7.0-android was computed. net7.0-ios net7.0-ios was computed. net7.0-maccatalyst net7.0-maccatalyst was computed. net7.0-macos net7.0-macos was computed. net7.0-tvos net7.0-tvos was computed. net7.0-windows net7.0-windows was computed. net8.0 net8.0 was computed. net8.0-android net8.0-android was computed. net8.0-browser net8.0-browser was computed. net8.0-ios net8.0-ios was computed. net8.0-maccatalyst net8.0-maccatalyst was computed. net8.0-macos net8.0-macos was computed. net8.0-tvos net8.0-tvos was computed. net8.0-windows net8.0-windows was computed. net9.0 net9.0 was computed. net9.0-android net9.0-android was computed. net9.0-browser net9.0-browser was computed. net9.0-ios net9.0-ios was computed. net9.0-maccatalyst net9.0-maccatalyst was computed. net9.0-macos net9.0-macos was computed. net9.0-tvos net9.0-tvos was computed. net9.0-windows net9.0-windows was computed. net10.0 net10.0 was computed. net10.0-android net10.0-android was computed. net10.0-browser net10.0-browser was computed. net10.0-ios net10.0-ios was computed. net10.0-maccatalyst net10.0-maccatalyst was computed. net10.0-macos net10.0-macos was computed. net10.0-tvos net10.0-tvos was computed. net10.0-windows net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 netcoreapp2.0 was computed. netcoreapp2.1 netcoreapp2.1 was computed. netcoreapp2.2 netcoreapp2.2 was computed. netcoreapp3.0 netcoreapp3.0 was computed. netcoreapp3.1 netcoreapp3.1 is compatible. |
| .NET Standard | netstandard2.0 netstandard2.0 is compatible. netstandard2.1 netstandard2.1 was computed. |
| .NET Framework | net461 net461 was computed. net462 net462 was computed. net463 net463 was computed. net47 net47 was computed. net471 net471 was computed. net472 net472 was computed. net48 net48 was computed. net481 net481 was computed. |
| MonoAndroid | monoandroid monoandroid was computed. |
| MonoMac | monomac monomac was computed. |
| MonoTouch | monotouch monotouch was computed. |
| Tizen | tizen40 tizen40 was computed. tizen60 tizen60 was computed. |
| Xamarin.iOS | xamarinios xamarinios was computed. |
| Xamarin.Mac | xamarinmac xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos xamarinwatchos was computed. |
Showing the top 2 NuGet packages that depend on Allure.Xunit:
| Package | Downloads |
|---|---|
|
Allure.Xunit.StepExtensions
Allure.Xunit.StepAttribute |
|
|
TiendaOnline
Package Description |
Showing the top 1 popular GitHub repositories that depend on Allure.Xunit:
| Repository | Stars |
|---|---|
|
DataDog/dd-trace-dotnet
.NET Client Library for Datadog APM
|
| Version | Downloads | Last Updated |
|---|---|---|
| 2.15.0 | 23,040 | 4/28/2026 |
| 2.14.1 | 183,447 | 10/21/2025 |
| 2.14.0 | 2,324 | 10/16/2025 |
| 2.13.0 | 29,872 | 10/9/2025 |
| 2.12.1 | 483,061 | 6/4/2024 |
| 2.12.0 | 37,756 | 4/2/2024 |
| 2.11.0 | 131,971 | 11/29/2023 |
| 2.10.0 | 25,113 | 10/16/2023 |
| 2.10.0-preview.1 | 313 | 9/22/2023 |
| 2.9.5-preview.1 | 13,644 | 3/22/2023 |
| 2.9.4-preview.6 | 947 | 2/13/2023 |
| 2.9.4-preview.5 | 314 | 2/13/2023 |
| 2.9.4-preview.2 | 355 | 1/2/2023 |
| 2.9.4-preview.1 | 305 | 12/30/2022 |
| 2.9.3-preview.1 | 294 | 12/23/2022 |
| 2.9.2-preview.1 | 428 | 9/19/2022 |
| 2.9.1-preview.7-nunit-fixtures | 533 | 8/2/2022 |
| 2.9.1-preview.6-nunit-fixtures | 315 | 7/27/2022 |