Allure.Net.Commons 2.11.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package Allure.Net.Commons --version 2.11.0
NuGet\Install-Package Allure.Net.Commons -Version 2.11.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Allure.Net.Commons" Version="2.11.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Allure.Net.Commons --version 2.11.0
#r "nuget: Allure.Net.Commons, 2.11.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Allure.Net.Commons as a Cake Addin
#addin nuget:?package=Allure.Net.Commons&version=2.11.0

// Install Allure.Net.Commons as a Cake Tool
#tool nuget:?package=Allure.Net.Commons&version=2.11.0

Allure.Net.Commons alternate text is missing from this package README image

.Net implementation of Allure java-commons.

Use this library to create custom Allure adapters for .NET test frameworks.

Can be used by any project targeting a netstandard2.0 compatible framework including .NET Framework 4.6.1+, .NET Core 2.0+, .NET 5.0+ and more. See the full list here.

Note for users of Mac with Apple silicon

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

Configuration

Allure lifecycle is configured via json file with default name allureConfig.json. NuGet package installs allureConfig.Template.json which you can use as an example. There are 2 ways to specify config file location:

  • set ALLURE_CONFIG environment variable to the full path of json config file. This option is preferable for .net core projects which utilize nuget libraries directly from nuget packages folder. See this example of setting it via code: https://github.com/allure-framework/allure-csharp/blob/bdf11bd3e1f41fd1e4a8fd22fa465b90b68e9d3f/Allure.Commons.NetCore.Tests/AllureConfigTests.cs#L13-L15

  • place allureConfig.json to the location of Allure.Commons.dll. This option can be used with .net classic projects which copy all referenced package libraries into binary folder. Do not forget to set 'Copy to Output Directory' property to 'Copy always' or 'Copy if newer' in your test project or set it in .csproj:

    <ItemGroup>
       <None Update="allureConfig.json">
         <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
       </None>
    </ItemGroup>
    

Allure lifecycle will start with default configuration settings if allureConfig.json is not found.

Raw json configuration can be accessed from AllureLifeCycle.Instance.JsonConfiguration to extend configuration by adapters. See extension example here: https://github.com/allure-framework/allure-csharp/blob/bdf11bd3e1f41fd1e4a8fd22fa465b90b68e9d3f/Allure.SpecFlowPlugin/PluginHelper.cs#L20-L29

Base configuration params are stored in AllureLifeCycle.Instance.Configuration

Allure configuration section is used to setup output directory and link patterns, e.g.:

{
  "allure": {
    "directory": "allure-results", // optional, default value is "allure-results"
    "title": "custom run title", // optional
    "links": //optional 
    [
      "https://example.org/{link}",
      "https://example.org/{issue}",
      "https://example.org/{tms}"
    ]
  }
}

All link pattern placeholders will be replaced with URL value of corresponding link type, e.g.

link(type: "issue", url: "BUG-01") => https://example.org/BUG-01

The end user API

This API is designed for test authors. Use it to enhance the report created from your tests.

The AllureApi facade

Use the Allure.Net.Commons.AllureApi class to access an end user's runtime API.

Metadata
  • SetTestName
  • SetFixtureName
  • SetStepName
  • SetDescription
  • SetDescriptionHtml
  • SetDescriptionHtml
  • AddLabels
  • AddLabel
  • SetLabel
  • SetSeverity
  • SetOwner
  • SetAllureId
  • AddTags
  • AddLinks
  • AddLink
  • AddIssue
  • AddTmsItem
Hierrarchies
  • AddParentSuite
  • SetParentSuite
  • AddSuite
  • SetSuite
  • AddSubSuite
  • SetSubSuite
  • AddEpic
  • SetEpic
  • AddFeature
  • SetFeature
  • AddStory
  • SetStory
Lambda steps
  • Step(string, Action): void - step action.
  • Step<T>(string, Func<T>): T - step function.
  • Step(string, Func<Task>): Task - async step action.
  • Step<T>(string, Func<Task<T>>): T - async step function.
Noop step
  • Step(string)
Attachments
  • AddAttachment - adds an attachment to the current step, fixture, or test.
  • AddScreenDiff - adds needed artifacts to the current test case to be used with screen-diff-plugin
Explicit step management

[!NOTE] Use these functions only if lambda steps doesn't suit your needs.

  • StartStep(string): void
  • StartStep(string, Action<StepResult>): void
  • PassStep(): void
  • PassStep(Action<StepResult>): void
  • FailStep(): void
  • FailStep(Action<StepResult>): void
  • BreakStep(): void
  • BreakStep(Action<StepResult>): void
Lambda fixtures
  • Before(string, Action): void - setup fixture action.
  • Before<T>(string, Func<T>): T - setup fixture function.
  • Before(string, Func<Task>): Task - async setup fixture action.
  • Before<T>(string, Func<Task<T>>): T - async setup fixture function.
  • After(string, Action): void - teardown fixture action.
  • After<T>(string, Func<T>): T - teardown fixture function.
  • After(string, Func<Task>): Task - async teardown fixture action.
  • After<T>(string, Func<Task<T>>): T - async teardown fixture function.
Explicit fixture management

[!NOTE] Use these functions only if lambda fixtures doesn't suit your needs.

  • StartBeforeFixture(string): void
  • StartAfterFixture(string): void
  • PassFixture(): void
  • PassFixture(Action<FixtureResult>): void
  • FailFixture(): void
  • FailFixture(Action<FixtureResult>): void
  • BreakFixture(): void
  • BreakFixture(Action<FixtureResult>): void

The integration API

This API is designed for those who want to integrate Allure with a test framework or library. You may still use it if you just want to improve the report created from the tests you write, but we strongly recommend you to consider using the end user API first.

AllureLifecycle

AllureLifecycle class provides methods for test engine events processing.

Use AllureLifecycle.Instance property to access.

Fixture Events
  • StartBeforeFixture
  • StartAfterFixture
  • UpdateFixture
  • StopFixture
Testcase Events
  • StartTestCase
  • UpdateTestCase
  • StopTestCase
  • WriteTestCase
Step Events
  • StartStep
  • UpdateStep
  • StopStep
Utility Methods
  • CleanupResultDirectory - can be used in test run setup to clean old result files
Context capturing

The methods above operate on the current Allure context. This context flows naturally as a part of ExecutionContext and is subject to the same constraints. Particularly, changes made in an async callee can't be observed by the caller.

Use the following methods of AllureLifecycle to capture the current Allure context and to operate on the captured context later:

  • Context
  • RunInContext

Example:

public static async Task Caller(ScenarioContext scenario)
{
    await Callee(scenario);
    AllureLifecycle.Instance.RunInContext(
        scenario.Get<AllureContext>(),
        () =>
        {
            // The test context required by the below methods wouldn't be
            // visible if they weren't wrapped with RunInContext.
            AllureLifecycle.Instance.StopTestCase();
            AllureLifecycle.Instance.WriteTestCase();
        }
    );
}

public static async Task Callee(ScenarioContext scenario)
{
    AllureLifecycle.Instance.StartTestCase(
        new(){ uuid = Guid.NewGuid().ToString() }
    );

    // Pass Allure context to the caller via ScenarioContext
    scenario.Set(AllureLifecycle.Instance.Context);
}
Obsoleted methods

Methods with explicit uuid parameters are deprecated. Migrate to their uuid-less counterparts that operate on the current Allure context.

User API methods from AllureLifecycle and CoreStepsHelper are obsoleted. The corresponding methods from AllureApi should be used instead.

Troubleshooting

...

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (6)

Showing the top 5 NuGet packages that depend on Allure.Net.Commons:

Package Downloads
Allure.NUnit

Create beautiful reports from your NUnit tests.

Allure.Xunit

Create beautiful reports from your xUnit.net tests.

Allure.SpecFlow

Create beautiful reports from your SpecFlow tests.

Empyrean.Core.Allure

Package Description

Allure.Reqnroll

Create beautiful reports from your Reqnroll tests.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
2.12.0 9,569 4/2/2024
2.11.0 82,937 11/29/2023
2.10.0 42,794 10/16/2023
2.10.0-preview.1 4,263 9/22/2023
2.9.5-preview.1 90,261 3/22/2023
2.9.4-preview.6 43,025 2/13/2023
2.9.4-preview.5 125 2/13/2023
2.9.4-preview.2 11,657 1/2/2023
2.9.4-preview.1 172 12/30/2022
2.9.3-preview.1 3,639 12/23/2022
2.9.2-preview.1 12,445 9/19/2022
2.9.1-preview.7-nunit-fixtures 2,002 8/2/2022
2.9.1-preview.6-nunit-fixtures 149 7/27/2022
2.9.1-preview.5 167 7/27/2022
2.9.1-preview.3 135 7/12/2022
2.9.1-preview.2 148 7/12/2022
2.9.0 1,137 7/8/2022