diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 14c77ed3..effee14a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -20,7 +20,7 @@ jobs: shell: pwsh run: .\pack.ps1 - name: Test - run: dotnet test test\Squirrel.Tests.csproj --verbosity normal + run: dotnet test test\Squirrel.Tests.csproj -l "console;verbosity=detailed" - name: "Upload Tools" uses: actions/upload-artifact@v3 with: diff --git a/test/ApplyReleasesTests.cs b/test/ApplyReleasesTests.cs index 5f7c36e9..a2e23f57 100644 --- a/test/ApplyReleasesTests.cs +++ b/test/ApplyReleasesTests.cs @@ -8,15 +8,18 @@ using System.Text; using System.Threading; using System.Threading.Tasks; using Squirrel.NuGet; -using Squirrel.SimpleSplat; -using Squirrel; using Squirrel.Tests.TestHelpers; using Xunit; +using Xunit.Abstractions; namespace Squirrel.Tests { - public class ApplyReleasesTests : IEnableLogger + public class ApplyReleasesTests : TestLoggingBase { + public ApplyReleasesTests(ITestOutputHelper log) : base(log) + { + } + [Fact] public async Task CleanInstallRunsSquirrelAwareAppsWithInstallFlag() { diff --git a/test/DeltaPackageTests.cs b/test/DeltaPackageTests.cs index 065a06f9..2dba31ce 100644 --- a/test/DeltaPackageTests.cs +++ b/test/DeltaPackageTests.cs @@ -7,11 +7,16 @@ using Squirrel; using Squirrel.SimpleSplat; using Squirrel.Tests.TestHelpers; using Xunit; +using Xunit.Abstractions; namespace Squirrel.Tests { - public class ApplyDeltaPackageTests : IEnableLogger + public class ApplyDeltaPackageTests : TestLoggingBase { + public ApplyDeltaPackageTests(ITestOutputHelper log) : base(log) + { + } + [Fact] public void ApplyDeltaPackageSmokeTest() { diff --git a/test/DownloadReleasesTests.cs b/test/DownloadReleasesTests.cs index d38a161e..0ae191e7 100644 --- a/test/DownloadReleasesTests.cs +++ b/test/DownloadReleasesTests.cs @@ -11,7 +11,7 @@ using Xunit; namespace Squirrel.Tests { - public class DownloadReleasesTests : IEnableLogger + public class DownloadReleasesTests { [Fact(Skip = "Rewrite this to be an integration test")] public void ChecksumShouldFailIfFilesAreMissing() diff --git a/test/ReleasePackageTests.cs b/test/ReleasePackageTests.cs index 89ad6b49..62886e62 100644 --- a/test/ReleasePackageTests.cs +++ b/test/ReleasePackageTests.cs @@ -11,11 +11,16 @@ using System.Xml.Linq; using Squirrel.SimpleSplat; using Xunit; using Squirrel.NuGet; +using Xunit.Abstractions; namespace Squirrel.Tests { - public class CreateReleasePackageTests : IEnableLogger + public class CreateReleasePackageTests : TestLoggingBase { + public CreateReleasePackageTests(ITestOutputHelper log) : base(log) + { + } + [Theory] [InlineData("1.2.3")] [InlineData("1.2.3-alpha13")] diff --git a/test/TestHelpers/Logging.cs b/test/TestHelpers/Logging.cs new file mode 100644 index 00000000..8aebf3cf --- /dev/null +++ b/test/TestHelpers/Logging.cs @@ -0,0 +1,49 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Squirrel.SimpleSplat; +using Xunit.Abstractions; + +namespace Squirrel.Tests +{ + public interface ITestLogging + { + IFullLogger Log(); + } + + public class TestLogger : ILogger + { + public LogLevel Level { get; set; } + public ITestOutputHelper OutputHelper { get; } + + public TestLogger(ITestOutputHelper outputHelper) + { + OutputHelper = outputHelper; + } + + public void Write([Localizable(false)] string message, LogLevel logLevel) + { + OutputHelper.WriteLine(message); + } + } + + public abstract class TestLoggingBase : ITestLogging + { + public ITestOutputHelper OutputHelper { get; } + public IFullLogger Logger { get; } + + public TestLoggingBase(ITestOutputHelper log) + { + OutputHelper = log; + Logger = new WrappingFullLogger(new TestLogger(OutputHelper), typeof(TestLogger)); + } + + public IFullLogger Log() + { + return Logger; + } + } +} diff --git a/test/UtilityTests.cs b/test/UtilityTests.cs index fa83eb86..3d8e5300 100644 --- a/test/UtilityTests.cs +++ b/test/UtilityTests.cs @@ -10,11 +10,16 @@ using Squirrel.Tests.TestHelpers; using Xunit; using Squirrel.Shell; using System.Collections.Generic; +using Xunit.Abstractions; namespace Squirrel.Tests { - public class UtilityTests : IEnableLogger + public class UtilityTests : TestLoggingBase { + public UtilityTests(ITestOutputHelper log) : base(log) + { + } + [Theory] [InlineData("file.txt", "file.txt")] [InlineData("file", "file")]