diff --git a/.github/workflows/dotnet.yml b/.github/workflows/dotnet.yml
index c868d0a..9f93993 100644
--- a/.github/workflows/dotnet.yml
+++ b/.github/workflows/dotnet.yml
@@ -4,13 +4,16 @@ on:
push:
pull_request:
+permissions:
+ checks: write
+
jobs:
build:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v3
- name: Setup .NET
uses: actions/setup-dotnet@v1
with:
@@ -24,4 +27,30 @@ jobs:
if: github.ref == 'refs/heads/master'
run: dotnet nuget push src/*/bin/Release/*.nupkg -k $NUGET_API_KEY -s https://api.nuget.org/v3/index.json --skip-duplicate
env:
- NUGET_API_KEY: ${{ secrets.STEP_EXTENSIONS_NUGET_API }}
\ No newline at end of file
+ NUGET_API_KEY: ${{ secrets.STEP_EXTENSIONS_NUGET_API }}
+
+ test:
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v3
+ - name: Setup .NET
+ uses: actions/setup-dotnet@v3
+ with:
+ dotnet-version: 6.0.x
+ - name: Build
+ run: dotnet build src
+ - name: Test
+ run: dotnet test src --no-build --verbosity normal --logger=trx
+ - name: Publish Test Results
+ uses: EnricoMi/publish-unit-test-result-action@v2
+ if: always()
+ with:
+ trx_files: "**/*.trx"
+ comment_mode: off
+ - name: Upload allure results
+ uses: actions/upload-artifact@v3
+ if: always()
+ with:
+ name: allure-results
+ path: src/**/allure-results/*.json
diff --git a/src/Allure.XUnit.Examples/Allure.XUnit.Examples.csproj b/src/Allure.XUnit.Examples/Allure.XUnit.Examples.csproj
index 624019b..355d21b 100644
--- a/src/Allure.XUnit.Examples/Allure.XUnit.Examples.csproj
+++ b/src/Allure.XUnit.Examples/Allure.XUnit.Examples.csproj
@@ -3,6 +3,7 @@
false
net6.0
+ true
diff --git a/src/Allure.XUnit.Examples/ExampleUnitTests.cs b/src/Allure.XUnit.Examples/ExampleUnitTests.cs
index 59d41af..dff4752 100644
--- a/src/Allure.XUnit.Examples/ExampleUnitTests.cs
+++ b/src/Allure.XUnit.Examples/ExampleUnitTests.cs
@@ -6,6 +6,7 @@
using Allure.Xunit;
using Allure.Xunit.Attributes;
using Xunit;
+using Xunit.Abstractions;
namespace Allure.XUnit.Examples
{
@@ -20,15 +21,18 @@ namespace Allure.XUnit.Examples
[AllureLink("Tinkoff", "https://tinkoff.ru")]
public class ExampleUnitTests : IDisposable
{
+ private readonly ITestOutputHelper _testOutputHelper;
+
public void Dispose()
{
}
- public ExampleUnitTests()
+ public ExampleUnitTests(ITestOutputHelper testOutputHelper)
{
+ _testOutputHelper = testOutputHelper;
Environment.CurrentDirectory = Path.GetDirectoryName(GetType().Assembly.Location);
}
-
+
[AllureXunit(DisplayName = "Test that 1 is not equals 1")]
[AllureDescription("My long test description; Lorem ipsum dolor sit amet.")]
[AllureFeature("qwerty", "123")]
@@ -52,7 +56,7 @@ public async Task Test2()
[AllureXunit(DisplayName = "Another Test")]
public void Test3()
{
- Assert.Empty(new List() {1, 2, 3});
+ Assert.Empty(new List() {1,2,3});
}
[AllureXunit]
@@ -63,10 +67,23 @@ public void TestMultipleTagsWithOverwrite()
}
[AllureXunit(DisplayName = "Test mapped to existing test case #1 in allure")]
- [AllureId("1")]
public void TestAllureIdMapping()
{
Assert.True(true);
}
+
+ [AllureXunit(DisplayName = "Test output is logged for success test")]
+ public void TestStandardOutputSavedToAllureForSuccessTest()
+ {
+ _testOutputHelper.WriteLine("This output of success test should be visible in IDE and logged in allure-result/*result.json");
+ Assert.True(true);
+ }
+
+ [AllureXunit(DisplayName = "Test output is logged for failed test")]
+ public void TestStandardOutputSavedToAllureForFailedTest()
+ {
+ _testOutputHelper.WriteLine("This output of failed test should be visible in IDE and in logged allure-result/*result.json");
+ Assert.False(true, "This failed assert is logged too along with previous output");
+ }
}
}
diff --git a/src/Allure.XUnit/Allure.XUnit.csproj b/src/Allure.XUnit/Allure.XUnit.csproj
index 84e8558..491cba7 100644
--- a/src/Allure.XUnit/Allure.XUnit.csproj
+++ b/src/Allure.XUnit/Allure.XUnit.csproj
@@ -12,6 +12,7 @@
https://github.com/Tinkoff/Allure.XUnit
allure; xunit;
9
+ false
diff --git a/src/Allure.XUnit/AllureXunitHelper.cs b/src/Allure.XUnit/AllureXunitHelper.cs
index e98aad1..3a76b5b 100644
--- a/src/Allure.XUnit/AllureXunitHelper.cs
+++ b/src/Allure.XUnit/AllureXunitHelper.cs
@@ -64,7 +64,8 @@ public static void MarkTestCaseAsFailed(ITestFailed testFailed)
var statusDetails = testResults.TestResult.statusDetails ??= new();
statusDetails.trace = string.Join('\n', testFailed.StackTraces);
- statusDetails.message = string.Join('\n', testFailed.Messages);
+ var mergedMessagedAndOutput = testFailed.Messages.Append(testFailed.Output);
+ statusDetails.message = string.Join('\n', mergedMessagedAndOutput);
testResults.TestResult.status = Status.failed;
}
diff --git a/src/Allure.Xunit.StepExtensions.Examples/Allure.Xunit.StepExtensions.Examples.csproj b/src/Allure.Xunit.StepExtensions.Examples/Allure.Xunit.StepExtensions.Examples.csproj
index a3c621f..83850de 100644
--- a/src/Allure.Xunit.StepExtensions.Examples/Allure.Xunit.StepExtensions.Examples.csproj
+++ b/src/Allure.Xunit.StepExtensions.Examples/Allure.Xunit.StepExtensions.Examples.csproj
@@ -3,6 +3,7 @@
net6.0
false
+ true