Skip to content

Commit

Permalink
2.10 update (#398)
Browse files Browse the repository at this point in the history
* Adds AllureBefore and AllureAfter to Allure.NUnit package

* NUnit: Ability to change testresult on fixture executions

* Preserve testResult.start time if it exists in update container

* SpecFlowNunit: add custom labels

* Fix missing output attachments in NUnit adapter

* Added step logging for NUnit (closes #312)

* Fixed NullPointerException if NUnit StepLogger was null (#315)

* embed untracked sources

* build process update

* NUnit Fix async behaviour in [AllureStep] aspect + Allow '{obj.prop}' placeholders in [AllureStep] step name (#329)

Co-authored-by: Кабанов Константин Юрьевич <kykabano@mts.ru>

* Package assets fix

* NUnit - Add an ability to save OneTimeSetUp step results (#333)

* Handle case when underlying step returns Task<T> masked as non-generic Task (#343)

* Unify xunit and nunit step acpects

* Replace allure-xunit's custom attributes with runner reporter (fixes #344) (#366)

* Add support for native xunit attributes

* Fix AllureXunitTheoryAttribute base class

* Fix missing theories

* Fix missing parameters and fixture duplication for some tests

* Add support for static test functions

* Update xunit examples. Obsolete allure-xunit attributes

* Update message sink to match new steps implementation

* Remove irrelevant log method from runner

* Bump harmony to 2.3-prerelease.2. Warn if no args reported

Change Lib.Harmony dependency to 2.3-prerelease.2 for .net 7 support.
Add warning if the patch via harmony didn't work for theory args and
args aren't reported on the testcase level.

* Fix reference to lib.harmony to be listed by dotnet

* Factor out allure-related code. Tidying up obsolescence

  - Allure-xunit's code that creates, updates, starts, stops and writes
    allure objects is factored out from AllureMessageSink to
    AllureXunitHelper .
  - Removal of AllureXunitHelper's public methods was reverted. The
    methods are marked as obsolete.
  - Add missing await to an allure-xunit example to suppress the
    compilation warning.
  - Mark obsoleted allure-xunit attributes as non-browsable to prevent
    them from appearing in IDE's suggestions.

* Add deprecation info and known issues to allure-xunit README

* Fix issue links in allure-xunit readme

* Fix obsolescence message for AllureXunitHelper's public methods

* New context-based state management model for allure-csharp (#371)

* Add AllureContext lass to isolate allure state from threads and async tasks

* Add concurrency tests. Reformulate context in terms of active/inactive

* Add tests on the context capturing by child threads/tasks

* Modify lifecycle/storage to use new context model. Add context get/set API

* Make CoreStepsHelper use AllureLifecycle's context

* Make lifecycle thread safe. Fix multithreading issues in lifecycle tests

* Several improvements on context. Allure-xunit migration

- Add bool props to test context to context's public API
- Fix context string conversion
- Migrate allure-xunit's code to the new context implementation

* Bump C# language version to 11 for all projects

* Enable null checks in some classes of allure-xunit

* Make lifecycle methods with explicit uuids obsoleted

* Minor changes in context and lifecycle

  - Improve error messages and doc comments
  - Add DebuggerDisplay for context
  - Uuid in string representation of context if names are empty
  - Old storage uuid-based methods obsoleted
  - Make RunInContext return modified context
  - Replace unsupported container nesting with test nested
    into each container in chain
  - Container and test starting now add objects into storage by
    uuids (transition period)

* Rewrite Allure.NUnit to support the new context scheme

* Fix Allure.XUnit usage of RunInContext

* Rewrite Allure.SpecFlowPlugin to support new context scheme

Additionally:
  - Change broken status to failed for some scenario and step conditions
  - Add extra test case instead of changing state of existing one in case
    after feature failed
  - Enable nullable check project-wide

* Separate context from storage

  - AllureContext moved to Allure.Net.Commons namespace
  - Context and storage are separated; Storage will be removed later
  - File scope namespaces for lifecycle and context

* Fix obsolete messages. Add file scoped namespaces

* Revert obsoleted StopFixtureSuppressTestCase to be intact

* Add new info to commons README

* Fix invalid test start. Remove rudimentary test start check

* Remove dotnet SDK 3.1 installation from build pipeline

* Change .NET SDK version to 7.0 in build pipeline

* Github pipelines fix

  - bump actions/checkout to 3.5.3
  - bump actions/setup-dotnet to 3.2.0
  - add dotnet 3.1 and 6.0 SDKs back to build and test
  - Change --no-restore to --no-build in dotnet test step

* Rename a placeholder scenario

* Implement requested changes for PR #371

  - Add allure directory clean before all tests in Allure.NUnit.Examples
  - NUnit.Allure.Core.AllureExtensions.AddScreenDiff is back
    and marked as obsolete (it just directly calls
    AllureLifecycle.AddScreenDiff now).
  - Intendation in Allure.SpecFlowPlugin.csproj fixed.

* NUnit: Fix inconsistent one-time fixtures behavior (fixes #286, #374 and #375) (#380)

* Fix inconsistent one-time fixtures behavior (fixes #374)

* Fix crash when running test from empty namespace (fixes #375)

* Fix indentation for AllureAsyncOneTimeSetUoTests.cs

* Allure-xunit: support for the second reporter and xunit 2.5.0. Updated packaging and AspectInjector (fixes 368) (#382)

* xunit: change sink base, remove redundant err logging

* Add ability to compose xunit runner reporters (implements #368)

* Extract allure-xunit runner reporter into separate project

* Factor out common props. Bump and tune injector

* Reflect new project structure in solution

* Enable fully deterministic build in CI

* Add startup message to Allure.XUnit

* Fix second reporter property name in config for Allure.XUnit's example

* Rewrite how to run section and fix allure-xunit's README

* Fix comment in Directory.Build.props

* Revert AspectInjector build optimization

* Add link to allureConfig.json issue

* Fix release workflow to apply version via .props

* Change net.commons description

It's quite different from allure-java-commons now.

* Improve readability of ResolveExplicitReporter

* Fix typo in allure-xunit README

* release 2.10.0-preview.1

* set next development version 2.11

* Selective run support: commons, nunit, xunit (#390)

* Implement selective run commons

* Change GetAllureId to take an enumeration

* Implement selective run for allure-nunit

* Add a shorthand for testplan's IsMatch

* Implement selective run for allure-xunit

* Move TestPlan property to commons. Rename selection check method

* Allure-specflow: selective run support (#392)

* Fix regression: non-working lambda-steps and lambda-fixtures API (#393)

* allure-xunit: provide default config when allureConfig.json is missing

Fixes #381

* Fix async step/fixture wrapper functions

  - make async Step, Before and After obey .NET's ExecutionContext capturing rules
  - refactor CoreStepsHelper to be more testable
  - write tests for CoreStepsHelper's Step, Before and After

More tests are needed to fully cover CoreStepsHelper.

Fixes #383
Fixed #388

* Add async suffix to private step methods

This helps to make distinction more clear to a reader.

* Fix identification properties and parameter formatting (#395)

* Bump NUnit for test and example projects

* Add json schemas for allureConfig and testplan

* Fix schema for allure-xunit and allure-specflow config

* Add legacy naming switch to config

* Update schema links to current branch

* Add schema links update task to release workflow

* Implement UUID and method-based fullName algorithms

* Common fns to calculate testCaseId, historyId and parameter value

* Add docstrings to new id-related functions

* Add function to create fullName from class

* Fix allureConfig item type for allure-nunit examples

* Add missing setter for UseLegacyIds config property

* Add framework label factory

* Fix uuid, fullName, historyId, testCaseId for allure-nunit

UseLegacyIds option is honored.

Additionally:
  - fix uuid for containers
  - fix missing historyId for ignored tests. Same id rules apply as for non-ignored tests (fixes #345)
  - add NUnit 3 framework label to test results
  - remove suites from AllureDisplayIgnored (now suites can be applied directly)
  - fix parameter names for parametrized test methods

* Apply custom formatters to step title and parameters

Now step title interpolation and step parameter value conversion uses the same
algorithm as test parameter conversions.

Fixes #377

* Add language label to commons and NUnit

* Fix uuid, fullName, historyId, testCaseId for allure-xunit

Legacy identifiers switch is honored.

Additionally:
  - Add framework and language labels to allure-xunit test results
  - Fix test parameters formatting. Custom type formatters are also used now

* Add no-formatters step helper overloads back to public API

* Revert autoedit this removal from StepFunctionTests.cs

* Fix uuid, fullName, historyId, testCaseId for allure-specflow

Legacy ids switch is honored.

Implements #387

* Implement requested changes

* Lower the required AspectInjector version for users back to 2.8.1 (workaround for #391) (#396)

* Add workaround for #391

* Comment AspectInjector workaround step in publish.yml

* Add Rosetta warning in package READMEs. Fix allure-nunit readme

* Update allure-xunit and allure-specflow README (#397)

---------

Co-authored-by: qameta-ci <qameta-ci@qameta.io>
Co-authored-by: Andrey Gurenkov <undron@users.noreply.github.com>
Co-authored-by: Constantine <overlord1983@mail.ru>
Co-authored-by: Кабанов Константин Юрьевич <kykabano@mts.ru>
Co-authored-by: Alexander Kulakov <a.kulakov@dodopizza.com>
Co-authored-by: Dmitry Pavlushin <d.pavlushin@dodopizza.com>
Co-authored-by: Maxim <17935127+delatrie@users.noreply.github.com>
  • Loading branch information
8 people committed Oct 16, 2023
1 parent 38394d9 commit a87db00
Show file tree
Hide file tree
Showing 155 changed files with 10,579 additions and 2,812 deletions.
9 changes: 5 additions & 4 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,14 +21,15 @@ jobs:
name: "Build"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3.0.2
- uses: actions/checkout@v3.5.3

- name: 'Setup .NET Core SDK'
uses: actions/setup-dotnet@v2.1.0
uses: actions/setup-dotnet@v3.2.0
with:
dotnet-version: |
3.1.x
6.0.x
7.0.x
- name: 'Restore packages'
run: dotnet restore ${{ env.SOLUTION_PATH }} --packages ${{ env.RESTORE_OUTPUT_PATH }}
Expand All @@ -38,5 +39,5 @@ jobs:

- name: 'Run tests'
run: |
dotnet test Allure.Net.Commons.Tests/Allure.Net.Commons.Tests.csproj --no-restore --configuration ${{ env.BUILD_CONFIGURATION }}
dotnet test Allure.SpecFlowPlugin.Tests/Allure.SpecFlowPlugin.Tests.csproj --no-restore --configuration ${{ env.BUILD_CONFIGURATION }}
dotnet test Allure.Net.Commons.Tests/Allure.Net.Commons.Tests.csproj --no-build --configuration ${{ env.BUILD_CONFIGURATION }}
dotnet test Allure.SpecFlowPlugin.Tests/Allure.SpecFlowPlugin.Tests.csproj --no-build --configuration ${{ env.BUILD_CONFIGURATION }}
15 changes: 11 additions & 4 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,23 +14,30 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3.0.2
- uses: actions/checkout@v3.5.3

- name: 'Setup .NET Core SDK'
uses: actions/setup-dotnet@v2.1.0
uses: actions/setup-dotnet@v3.2.0
with:
dotnet-version: |
3.1.x
6.0.x
7.0.x
- name: 'Restore packages'
run: dotnet restore ${{ env.SOLUTION_PATH }} --packages ${{ env.RESTORE_OUTPUT_PATH }}

- name: 'Build project using dotnet'
run: dotnet build ${{ env.SOLUTION_PATH }} --no-restore --configuration ${{ env.BUILD_CONFIGURATION }}
run: dotnet build ${{ env.SOLUTION_PATH }} --no-restore --configuration ${{ env.BUILD_CONFIGURATION }} -p:ContinuousIntegrationBuild=true

# Lower AspectInjector requirement for users of the packages to workaround #391 (build crash on macOS arm machines)
- name: Reduce AspectInjector requirement to 2.8.1
run: |
dotnet add Allure.Net.Commons package AspectInjector --version 2.8.1
dotnet add Allure.XUnit package AspectInjector --version 2.8.1
- name: 'Pack project'
run: dotnet pack ${{ env.SOLUTION_PATH }} --no-restore --no-build --configuration ${{ env.BUILD_CONFIGURATION }} --include-symbols -p:PackageOutputPath=${{ env.PACKAGE_OUTPUT_PATH }}
run: dotnet pack ${{ env.SOLUTION_PATH }} --no-restore --no-build --configuration ${{ env.BUILD_CONFIGURATION }} -p:PackageOutputPath=${{ env.PACKAGE_OUTPUT_PATH }}

- name: 'NuGet publish'
run: |
Expand Down
40 changes: 24 additions & 16 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,29 +45,37 @@ jobs:
git config --global user.email qameta-ci@qameta.io
- name: "Set release version"
run: |
sed -i -e '/<PropertyGroup>/,/<\/PropertyGroup>/ s|<Version>[0-9a-zA-Z.|-]*</Version>|<Version>${{ env.release_version }}</Version>|g' ./Allure.Net.Commons/Allure.Net.Commons.csproj
cat ./Allure.Net.Commons/Allure.Net.Commons.csproj
sed -i -e '/<PropertyGroup>/,/<\/PropertyGroup>/ s|<Version>[0-9a-zA-Z.|-]*</Version>|<Version>${{ env.release_version }}</Version>|g' ./Allure.SpecFlowPlugin/Allure.SpecFlowPlugin.csproj
cat ./Allure.SpecFlowPlugin/Allure.SpecFlowPlugin.csproj
sed -i -e '/<PropertyGroup>/,/<\/PropertyGroup>/ s|<Version>[0-9a-zA-Z.|-]*</Version>|<Version>${{ env.release_version }}</Version>|g' ./Allure.XUnit/Allure.XUnit.csproj
cat ./Allure.XUnit/Allure.XUnit.csproj
sed -i -e '/<PropertyGroup>/,/<\/PropertyGroup>/ s|<Version>[0-9a-zA-Z.|-]*</Version>|<Version>${{ env.release_version }}</Version>|g' ./Allure.NUnit/Allure.NUnit.csproj
cat ./Allure.NUnit/Allure.NUnit.csproj
sed -i -e '/<PropertyGroup>/,/<\/PropertyGroup>/ s|<Version>[0-9a-zA-Z.|-]*</Version>|<Version>${{ env.release_version }}</Version>|g' ./Directory.Build.props
cat ./Directory.Build.props
- name: "Update schema links"
run: |
sed -i -e '/"$ref"/s|/allure-csharp/[^/]*|/allure-csharp/${{ env.release_version }}|g' ./Allure.NUnit/Schemas/allureConfig.schema.json
cat ./Allure.NUnit/Schemas/allureConfig.schema.json
sed -i -e '/"$ref"/s|/allure-csharp/[^/]*|/allure-csharp/${{ env.release_version }}|g' ./Allure.XUnit/Schemas/allureConfig.schema.json
cat ./Allure.XUnit/Schemas/allureConfig.schema.json
sed -i -e '/"$ref"/s|/allure-csharp/[^/]*|/allure-csharp/${{ env.release_version }}|g' ./Allure.SpecFlowPlugin/Schemas/allureConfig.schema.json
cat ./Allure.SpecFlowPlugin/Schemas/allureConfig.schema.json
sed -i -e '/"$schema"/s|/allure-csharp/[^/]*|/allure-csharp/${{ env.release_version }}|g' ./Allure.NUnit/allureConfig.json
cat ./Allure.NUnit/allureConfig.json
sed -i -e '/"$schema"/s|/allure-csharp/[^/]*|/allure-csharp/${{ env.release_version }}|g' ./Allure.NUnit.Examples/allureConfig.json
cat ./Allure.NUnit.Examples/allureConfig.json
sed -i -e '/"$schema"/s|/allure-csharp/[^/]*|/allure-csharp/${{ env.release_version }}|g' ./Allure.XUnit.Examples/allureConfig.json
cat ./Allure.XUnit.Examples/allureConfig.json
sed -i -e '/"$schema"/s|/allure-csharp/[^/]*|/allure-csharp/${{ env.release_version }}|g' ./Allure.SpecFlowPlugin/allureConfig.Template.json
cat ./Allure.SpecFlowPlugin/allureConfig.Template.json
sed -i -e '/"$schema"/s|/allure-csharp/[^/]*|/allure-csharp/${{ env.release_version }}|g' ./Allure.Features/allureConfig.json
cat ./Allure.Features/allureConfig.json
sed -i -e '/"$schema"/s|/allure-csharp/[^/]*|/allure-csharp/${{ env.release_version }}|g' ./Allure.SpecFlowPlugin.Tests/allureConfig.json
cat ./Allure.SpecFlowPlugin.Tests/allureConfig.json
- name: "Commit release version and create tag"
run: |
git commit -am "release ${{ env.release_version }}"
git tag ${{ env.release_version }}
git push origin ${{ env.release_version }}
- name: "Set next development version"
run: |
sed -i -e '/<PropertyGroup>/,/<\/PropertyGroup>/ s|<Version>[0-9a-zA-Z.|-]*</Version>|<Version>${{ inputs.nextVersion }}-SNAPSHOT</Version>|g' ./Allure.Net.Commons/Allure.Net.Commons.csproj
cat ./Allure.Net.Commons/Allure.Net.Commons.csproj
sed -i -e '/<PropertyGroup>/,/<\/PropertyGroup>/ s|<Version>[0-9a-zA-Z.|-]*</Version>|<Version>${{ inputs.nextVersion }}-SNAPSHOT</Version>|g' ./Allure.SpecFlowPlugin/Allure.SpecFlowPlugin.csproj
cat ./Allure.SpecFlowPlugin/Allure.SpecFlowPlugin.csproj
sed -i -e '/<PropertyGroup>/,/<\/PropertyGroup>/ s|<Version>[0-9a-zA-Z.|-]*</Version>|<Version>${{ inputs.nextVersion }}-SNAPSHOT</Version>|g' ./Allure.XUnit/Allure.XUnit.csproj
cat ./Allure.XUnit/Allure.XUnit.csproj
sed -i -e '/<PropertyGroup>/,/<\/PropertyGroup>/ s|<Version>[0-9a-zA-Z.|-]*</Version>|<Version>${{ inputs.nextVersion }}-SNAPSHOT</Version>|g' ./Allure.NUnit/Allure.NUnit.csproj
cat ./Allure.NUnit/Allure.NUnit.csproj
sed -i -e '/<PropertyGroup>/,/<\/PropertyGroup>/ s|<Version>[0-9a-zA-Z.|-]*</Version>|<Version>${{ inputs.nextVersion }}-SNAPSHOT</Version>|g' ./Directory.Build.props
cat ./Directory.Build.props
- name: "Commit next development version and push it"
run: |
git commit -am "set next development version ${{ inputs.nextVersion }}"
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -265,3 +265,5 @@ __pycache__/
.DS_Store
*mono_crash*
/.vscode

.editorconfig
60 changes: 31 additions & 29 deletions Allure.Features/Allure.Features.csproj
Original file line number Diff line number Diff line change
@@ -1,32 +1,34 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<IsPackable>false</IsPackable>
<OutputPath>bin</OutputPath>
</PropertyGroup>
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<OutputPath>bin</OutputPath>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.4.1" />
<PackageReference Include="Castle.Core" Version="4.4.1" />
<PackageReference Include="NUnit" Version="3.13.2" />
<PackageReference Include="NUnit3TestAdapter" Version="4.0.0" />
<PackageReference Include="SpecFlow" Version="3.9.74" />
<PackageReference Include="SpecFlow.SharedSteps" Version="3.0.7" />
<PackageReference Include="SpecFlow.Tools.MsBuild.Generation" Version="3.9.8" />
<PackageReference Include="SpecFlow.NUnit" Version="3.9.8" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Allure.Net.Commons\Allure.Net.Commons.csproj" />
<ProjectReference Include="..\Allure.SpecFlowPlugin\Allure.SpecFlowPlugin.csproj" />
</ItemGroup>
<ItemGroup>
<None Update="allureConfig.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
<ItemGroup>
<None Update="specflow.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.4.1" />
<PackageReference Include="Castle.Core" Version="4.4.1" />
<PackageReference Include="NUnit" Version="3.13.3" />
<PackageReference Include="NUnit3TestAdapter" Version="4.5.0" />
<PackageReference Include="SpecFlow" Version="3.9.74" />
<PackageReference Include="SpecFlow.SharedSteps" Version="3.0.7" />

<!-- SpecFlow.SharedSteps doesn't work with SpecFlow.Tools.MsBuild.Generation v3.9.58+ -->
<PackageReference Include="SpecFlow.Tools.MsBuild.Generation" Version="3.9.52" />

<PackageReference Include="SpecFlow.NUnit" Version="3.9.52" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Allure.Net.Commons\Allure.Net.Commons.csproj" />
<ProjectReference Include="..\Allure.SpecFlowPlugin\Allure.SpecFlowPlugin.csproj" />
</ItemGroup>
<ItemGroup>
<None Update="allureConfig.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
<ItemGroup>
<None Update="specflow.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project>
2 changes: 1 addition & 1 deletion Allure.Features/TestData/After Feature Failure.feature
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ Feature: After Feature Failure
Scenario: After Feature Failure 1
Given Step is 'passed'

@broken
@failed
Scenario: After Feature Failure 3
Given Step is 'failed'

Expand Down
2 changes: 1 addition & 1 deletion Allure.Features/TestData/Before Feature Failure.feature
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@
Feature: Before Feature Failure

@broken
Scenario: Unknown
Scenario: Feature hook failure placeholder
2 changes: 1 addition & 1 deletion Allure.Features/TestData/Invalid Steps.feature
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
Given Step is 'passed'
And I don't have such step too

@broken
@failed
Scenario: Failed step followed by invalid step
Given Step is 'failed'
Given I don't have such step
Expand Down
1 change: 1 addition & 0 deletions Allure.Features/allureConfig.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
{
"$schema": "https://raw.githubusercontent.com/allure-framework/allure-csharp/identifiers-fix/Allure.SpecFlowPlugin/Schemas/allureConfig.schema.json",
"allure": {
"title": "5994A3F7-AF84-46AD-9393-000BB45553CC",
"directory": "allure-results",
Expand Down
42 changes: 21 additions & 21 deletions Allure.NUnit.Examples/Allure.NUnit.Examples.csproj
Original file line number Diff line number Diff line change
@@ -1,28 +1,28 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<IsPackable>false</IsPackable>
<OutputType>Library</OutputType>
</PropertyGroup>
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<OutputType>Library</OutputType>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="NUnit3TestAdapter" Version="3.17.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.4.1" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="NUnit" Version="3.13.3" />
<PackageReference Include="NUnit3TestAdapter" Version="4.5.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.4.1" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\Allure.NUnit\Allure.NUnit.csproj" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Allure.NUnit\Allure.NUnit.csproj" />
</ItemGroup>

<ItemGroup>
<Resource Include="allureConfig.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Resource>
<Resource Include="AllureIgnoredTest.cs" />
<None Include="./../img/Allure-Color.png" PackagePath="\">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
<ItemGroup>
<Content Include="allureConfig.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
<Resource Include="AllureIgnoredTest.cs" />
<None Include="./../img/Allure-Color.png" PackagePath="\">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>

</Project>
44 changes: 44 additions & 0 deletions Allure.NUnit.Examples/AllureAsyncOneTimeSetUpTests.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
using System.Threading.Tasks;
using Allure.NUnit.Examples.CommonSteps;
using NUnit.Allure.Attributes;
using NUnit.Framework;

namespace Allure.NUnit.Examples
{
[AllureSuite("Tests - Async OneTime SetUp")]
[Parallelizable(ParallelScope.All)]
public class AllureAsyncOneTimeSetUpTests: BaseTest
{
[OneTimeSetUp]
[AllureBefore]
public async Task OneTimeSetUp()
{
await AsyncStepsExamples.PrepareDough();
await AsyncStepsExamples.CookPizza();
await AsyncStepsExamples.CookPizza();
await AsyncStepsExamples.CookPizza();
}

[SetUp]
[AllureBefore]
public async Task SetUp()
{
await AsyncStepsExamples.PrepareDough();
}

[Test]
[AllureName("Test1")]
public async Task Test1()
{
await AsyncStepsExamples.DeliverPizza();
await AsyncStepsExamples.Pay();
}

[Test]
[AllureName("Test2")]
public async Task Test2()
{
await AsyncStepsExamples.DeliverPizza();
}
}
}
35 changes: 35 additions & 0 deletions Allure.NUnit.Examples/AllureAsyncStepTest.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
using System.Threading.Tasks;
using Allure.NUnit.Examples.CommonSteps;
using NUnit.Allure.Attributes;
using NUnit.Framework;

namespace Allure.NUnit.Examples;

[AllureSuite("Tests - Async Steps")]
public class AllureAsyncStepTest : BaseTest
{
private bool _isStep1Finished;

[Test]
[AllureName("Simple test with async steps")]
public async Task CookPizzaStepByStepTest()
{
await AsyncStepsExamples.PrepareDough();
await AsyncStepsExamples.CookPizza();
}

[Test]
public async Task AwaitingStepsTaskCastTest()
{
await Step1();
Assert.That(_isStep1Finished, Is.True);
}

[AllureStep("Step1")]
public async Task Step1()
{
_isStep1Finished = false;
await Task.Delay(500);
_isStep1Finished = true;
}
}
7 changes: 2 additions & 5 deletions Allure.NUnit.Examples/AllureAttachmentsTest.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
using System;
using System.IO;
using Allure.Net.Commons;
using NUnit.Allure;
using NUnit.Allure.Attributes;
using NUnit.Framework;

Expand All @@ -15,10 +15,7 @@ public void AttachmentSimpleTest()
Console.WriteLine("With Attachment");
Console.WriteLine(DateTime.Now);


AllureLifecycle.Instance.AddAttachment(
Path.Combine(TestContext.CurrentContext.TestDirectory, "allureConfig.json"),
"AllureConfig.json");
Attachments.File("AllureConfig.json", Path.Combine(TestContext.CurrentContext.TestDirectory, "allureConfig.json"));
}
}
}
17 changes: 17 additions & 0 deletions Allure.NUnit.Examples/AllureSetUpFixture.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
using Allure.Net.Commons;
using NUnit.Allure.Core;
using NUnit.Framework;

namespace Allure.NUnit.Examples
{
[SetUpFixture]
public class AllureSetUpFixture
{
[OneTimeSetUp]
public static void CleanupResultDirectory() =>
AllureExtensions.WrapSetUpTearDownParams(
AllureLifecycle.Instance.CleanupResultDirectory,
"Clear Allure Results Directory"
);
}
}

0 comments on commit a87db00

Please sign in to comment.