Skip to content
27 changes: 23 additions & 4 deletions TUnit.Engine.Tests/GlobalHooks.cs
Original file line number Diff line number Diff line change
@@ -1,13 +1,32 @@
namespace TUnit.Engine.Tests;
using CliWrap.Buffered;

namespace TUnit.Engine.Tests;

public class GlobalHooks
{
[Before(TestSession)]
public static async Task BuildTestProject()
{
await CliWrap.Cli.Wrap("dotnet")
.WithArguments(["build", "-c", "Release"])
var result = await CliWrap.Cli.Wrap("dotnet")
.WithArguments(["build", "-c", GetConfiguration(), "--no-restore"])
.WithWorkingDirectory(FileSystemHelpers.FindFile(x => x.Name == "TUnit.TestProject.csproj")!.DirectoryName!)
.ExecuteAsync();
.WithValidation(CliWrap.CommandResultValidation.None)
.ExecuteBufferedAsync();

// Only show output if the command failed
if (result.ExitCode != 0)
{
Console.WriteLine(result.StandardOutput);
Console.Error.WriteLine(result.StandardError);
throw new InvalidOperationException($"Build failed with exit code {result.ExitCode}");
}
}

private static string GetConfiguration()
{
var isCi = Environment.GetEnvironmentVariable("GITHUB_ACTIONS") == "true" ||
Environment.GetEnvironmentVariable("CI") == "true";

return isCi ? "Release" : "Debug";
}
}
7 changes: 7 additions & 0 deletions TUnit.Pipeline/Modules/Abstract/TestBaseModule.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
using ModularPipelines.Context;
using ModularPipelines.DotNet.Extensions;
using ModularPipelines.DotNet.Options;
using ModularPipelines.Enums;
using ModularPipelines.Models;
using ModularPipelines.Modules;

Expand Down Expand Up @@ -57,6 +58,12 @@ private DotNetRunOptions SetDefaults(DotNetRunOptions testOptions)
};
}

// Suppress output for successful operations, but show errors and basic info
testOptions = testOptions with
{
CommandLogging = CommandLogging.Input | CommandLogging.Error | CommandLogging.Duration | CommandLogging.ExitCode
};

return testOptions;
}

Expand Down
6 changes: 5 additions & 1 deletion TUnit.Pipeline/Modules/AddLocalNuGetRepositoryModule.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using ModularPipelines.Context;
using ModularPipelines.DotNet.Extensions;
using ModularPipelines.DotNet.Options;
using ModularPipelines.Enums;
using ModularPipelines.FileSystem;
using ModularPipelines.Modules;

Expand All @@ -11,7 +12,10 @@ public class AddLocalNuGetRepositoryModule : Module<Folder>
protected override async Task<Folder?> ExecuteAsync(IPipelineContext context, CancellationToken cancellationToken)
{
var folder = context.FileSystem.GetFolder(Environment.SpecialFolder.LocalApplicationData).GetFolder("LocalNuget").Create();
await context.DotNet().Nuget.Add.Source(new DotNetNugetAddSourceOptions(folder), cancellationToken);
await context.DotNet().Nuget.Add.Source(new DotNetNugetAddSourceOptions(folder)
{
CommandLogging = CommandLogging.Input | CommandLogging.Error | CommandLogging.Duration | CommandLogging.ExitCode
}, cancellationToken);
return folder;
}
}
2 changes: 2 additions & 0 deletions TUnit.Pipeline/Modules/PackTUnitFilesModule.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
using ModularPipelines.Context;
using ModularPipelines.DotNet.Extensions;
using ModularPipelines.DotNet.Options;
using ModularPipelines.Enums;
using ModularPipelines.Models;
using ModularPipelines.Modules;

Expand Down Expand Up @@ -39,6 +40,7 @@ await context.DotNet()
],
IncludeSource = project == Sourcy.DotNet.Projects.TUnit_Templates ? false : true,
Configuration = Configuration.Release,
CommandLogging = CommandLogging.Input | CommandLogging.Error | CommandLogging.Duration | CommandLogging.ExitCode
}, cancellationToken);

packedProjects.Add(new PackedProject(project.NameWithoutExtension, version.SemVer!));
Expand Down
4 changes: 3 additions & 1 deletion TUnit.Pipeline/Modules/PublishAOTModule.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
using ModularPipelines.Context;
using ModularPipelines.DotNet.Extensions;
using ModularPipelines.DotNet.Options;
using ModularPipelines.Enums;
using ModularPipelines.Extensions;
using ModularPipelines.Git.Extensions;
using ModularPipelines.Models;
Expand All @@ -26,7 +27,8 @@ protected override Task<SkipDecision> ShouldSkip(IPipelineContext context)
Configuration = Configuration.Release,
OutputDirectory = "TESTPROJECT_AOT",
Properties = [new KeyValue("Aot", "true")],
Framework = "net8.0"
Framework = "net8.0",
CommandLogging = CommandLogging.Input | CommandLogging.Error | CommandLogging.Duration | CommandLogging.ExitCode
}, cancellationToken);
}

Expand Down
4 changes: 3 additions & 1 deletion TUnit.Pipeline/Modules/PublishSingleFileModule.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
using ModularPipelines.Context;
using ModularPipelines.DotNet.Extensions;
using ModularPipelines.DotNet.Options;
using ModularPipelines.Enums;
using ModularPipelines.Extensions;
using ModularPipelines.Git.Extensions;
using ModularPipelines.Models;
Expand All @@ -28,7 +29,8 @@ protected override Task<SkipDecision> ShouldSkip(IPipelineContext context)
Configuration = Configuration.Release,
OutputDirectory = "TESTPROJECT_SINGLEFILE",
Properties = [new KeyValue("SingleFile", "true")],
Framework = "net8.0"
Framework = "net8.0",
CommandLogging = CommandLogging.Input | CommandLogging.Error | CommandLogging.Duration | CommandLogging.ExitCode
}, cancellationToken);
}

Expand Down
4 changes: 3 additions & 1 deletion TUnit.Pipeline/Modules/RunAnalyzersTestsModule.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
using ModularPipelines.Context;
using ModularPipelines.DotNet.Extensions;
using ModularPipelines.DotNet.Options;
using ModularPipelines.Enums;
using ModularPipelines.Extensions;
using ModularPipelines.Git.Extensions;
using ModularPipelines.Models;
Expand All @@ -24,7 +25,8 @@ public class RunAnalyzersTestsModule : Module<CommandResult>
EnvironmentVariables = new Dictionary<string, string?>
{
["DISABLE_GITHUB_REPORTER"] = "true",
}
},
CommandLogging = CommandLogging.Input | CommandLogging.Error | CommandLogging.Duration | CommandLogging.ExitCode
}, cancellationToken);
}
}
4 changes: 3 additions & 1 deletion TUnit.Pipeline/Modules/RunAspNetTestsModule.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
using ModularPipelines.Context;
using ModularPipelines.DotNet.Extensions;
using ModularPipelines.DotNet.Options;
using ModularPipelines.Enums;
using ModularPipelines.Extensions;
using ModularPipelines.Git.Extensions;
using ModularPipelines.Models;
Expand All @@ -27,7 +28,8 @@ public class RunAspNetTestsModule : Module<CommandResult>
EnvironmentVariables = new Dictionary<string, string?>
{
["DISABLE_GITHUB_REPORTER"] = "true",
}
},
CommandLogging = CommandLogging.Input | CommandLogging.Error | CommandLogging.Duration | CommandLogging.ExitCode
}, cancellationToken);
}
}
4 changes: 3 additions & 1 deletion TUnit.Pipeline/Modules/RunAssertionsAnalyzersTestsModule.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
using ModularPipelines.Context;
using ModularPipelines.DotNet.Extensions;
using ModularPipelines.DotNet.Options;
using ModularPipelines.Enums;
using ModularPipelines.Extensions;
using ModularPipelines.Git.Extensions;
using ModularPipelines.Models;
Expand All @@ -24,7 +25,8 @@ public class RunAssertionsAnalyzersTestsModule : Module<CommandResult>
EnvironmentVariables = new Dictionary<string, string?>
{
["DISABLE_GITHUB_REPORTER"] = "true",
}
},
CommandLogging = CommandLogging.Input | CommandLogging.Error | CommandLogging.Duration | CommandLogging.ExitCode
}, cancellationToken);
}
}
4 changes: 3 additions & 1 deletion TUnit.Pipeline/Modules/RunAssertionsCodeFixersTestsModule.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
using ModularPipelines.Context;
using ModularPipelines.DotNet.Extensions;
using ModularPipelines.DotNet.Options;
using ModularPipelines.Enums;
using ModularPipelines.Extensions;
using ModularPipelines.Git.Extensions;
using ModularPipelines.Models;
Expand All @@ -24,7 +25,8 @@ public class RunAssertionsCodeFixersTestsModule : Module<CommandResult>
EnvironmentVariables = new Dictionary<string, string?>
{
["DISABLE_GITHUB_REPORTER"] = "true",
}
},
CommandLogging = CommandLogging.Input | CommandLogging.Error | CommandLogging.Duration | CommandLogging.ExitCode
}, cancellationToken);
}
}
4 changes: 3 additions & 1 deletion TUnit.Pipeline/Modules/RunEngineTestsModule.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
using ModularPipelines.Context;
using ModularPipelines.DotNet.Extensions;
using ModularPipelines.DotNet.Options;
using ModularPipelines.Enums;
using ModularPipelines.Extensions;
using ModularPipelines.Git.Extensions;
using ModularPipelines.Models;
Expand Down Expand Up @@ -44,7 +45,8 @@ public class RunEngineTestsModule : Module<CommandResult>
EnvironmentVariables = new Dictionary<string, string?>
{
["TUNIT_DISABLE_GITHUB_REPORTER"] = "true",
}
},
CommandLogging = CommandLogging.Input | CommandLogging.Error | CommandLogging.Duration | CommandLogging.ExitCode
}, cancellationToken);
}
}
4 changes: 3 additions & 1 deletion TUnit.Pipeline/Modules/RunTemplateTestsModule.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
using ModularPipelines.Context;
using ModularPipelines.DotNet.Extensions;
using ModularPipelines.DotNet.Options;
using ModularPipelines.Enums;
using ModularPipelines.Extensions;
using ModularPipelines.Git.Extensions;
using ModularPipelines.Models;
Expand All @@ -24,7 +25,8 @@ public class RunTemplateTestsModule : Module<CommandResult>
EnvironmentVariables = new Dictionary<string, string?>
{
["DISABLE_GITHUB_REPORTER"] = "true",
}
},
CommandLogging = CommandLogging.Input | CommandLogging.Error | CommandLogging.Duration | CommandLogging.ExitCode
}, cancellationToken);
}
}
16 changes: 11 additions & 5 deletions TUnit.Pipeline/Modules/TestTemplatePackageModule.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
using ModularPipelines.Context;
using ModularPipelines.DotNet.Extensions;
using ModularPipelines.DotNet.Options;
using ModularPipelines.Enums;
using ModularPipelines.Models;
using ModularPipelines.Modules;

Expand All @@ -19,27 +20,32 @@ public class TestTemplatePackageModule : Module<CommandResult>
await context.DotNet().New(new DotNetNewOptions("uninstall")
{
Arguments = ["TUnit.Templates"],
ThrowOnNonZeroExitCode = false
ThrowOnNonZeroExitCode = false,
CommandLogging = CommandLogging.Input | CommandLogging.Error | CommandLogging.Duration | CommandLogging.ExitCode
}, cancellationToken);

await context.DotNet().New(new DotNetNewOptions("install")
{
Arguments = [$"TUnit.Templates::{version.Value!.SemVer}"]
Arguments = [$"TUnit.Templates::{version.Value!.SemVer}"],
CommandLogging = CommandLogging.Input | CommandLogging.Error | CommandLogging.Duration | CommandLogging.ExitCode
}, cancellationToken);

await context.DotNet().New(new DotNetNewOptions("TUnit")
{
Name = "MyTestProject"
Name = "MyTestProject",
CommandLogging = CommandLogging.Input | CommandLogging.Error | CommandLogging.Duration | CommandLogging.ExitCode
}, cancellationToken);

await context.DotNet().New(new DotNetNewOptions("TUnit.AspNet")
{
Name = "MyTestProject2"
Name = "MyTestProject2",
CommandLogging = CommandLogging.Input | CommandLogging.Error | CommandLogging.Duration | CommandLogging.ExitCode
}, cancellationToken);

return await context.DotNet().New(new DotNetNewOptions("TUnit.Playwright")
{
Name = "MyTestProject3"
Name = "MyTestProject3",
CommandLogging = CommandLogging.Input | CommandLogging.Error | CommandLogging.Duration | CommandLogging.ExitCode
}, cancellationToken);
}
}
4 changes: 3 additions & 1 deletion TUnit.Pipeline/Modules/UploadToNuGetModule.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
using ModularPipelines.Context;
using ModularPipelines.DotNet.Extensions;
using ModularPipelines.DotNet.Options;
using ModularPipelines.Enums;
using ModularPipelines.Git.Attributes;
using ModularPipelines.Git.Extensions;
using ModularPipelines.Models;
Expand Down Expand Up @@ -43,7 +44,8 @@ protected override Task<SkipDecision> ShouldSkip(IPipelineContext context)
context.DotNet().Nuget.Push(new DotNetNugetPushOptions(file)
{
Source = "https://api.nuget.org/v3/index.json",
ApiKey = options.Value.ApiKey
ApiKey = options.Value.ApiKey,
CommandLogging = CommandLogging.Input | CommandLogging.Error | CommandLogging.Duration | CommandLogging.ExitCode
}, cancellationToken), cancellationToken: cancellationToken)
.ProcessOneAtATime();
}
Expand Down
Loading