From a14637a5cf16cb50b7b7f528b460b2ba10d5511a Mon Sep 17 00:00:00 2001
From: Tom Longhurst <30480171+thomhurst@users.noreply.github.com>
Date: Sun, 1 Sep 2024 23:57:52 +0100
Subject: [PATCH 01/15] Benchmarks
---
.github/workflows/speed-comparison.yml | 4 +-
Directory.Packages.props | 1 +
tools/speed-comparison/TestProjects.sln | 6 +++
.../Tests.Benchmark/Benchmarks.cs | 43 +++++++++++++++++++
.../Tests.Benchmark/Program.cs | 14 ++++++
.../Tests.Benchmark/Tests.Benchmark.csproj | 14 ++++++
6 files changed, 80 insertions(+), 2 deletions(-)
create mode 100644 tools/speed-comparison/Tests.Benchmark/Benchmarks.cs
create mode 100644 tools/speed-comparison/Tests.Benchmark/Program.cs
create mode 100644 tools/speed-comparison/Tests.Benchmark/Tests.Benchmark.csproj
diff --git a/.github/workflows/speed-comparison.yml b/.github/workflows/speed-comparison.yml
index eed61a52cd..07aff6692e 100644
--- a/.github/workflows/speed-comparison.yml
+++ b/.github/workflows/speed-comparison.yml
@@ -47,6 +47,6 @@ jobs:
run: dotnet build -c Release
working-directory: "tools/speed-comparison/MSTestTimer"
- - name: Run Pipeline
+ - name: Run Benchmark
run: dotnet run -c Release
- working-directory: "tools/speed-comparison/TUnit.SpeedComparison.Pipeline/TUnit.SpeedComparison.Pipeline"
+ working-directory: "tools/speed-comparison/Tests.Benchmark"
diff --git a/Directory.Packages.props b/Directory.Packages.props
index 2a2dedd366..782be50db9 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -4,6 +4,7 @@
+
diff --git a/tools/speed-comparison/TestProjects.sln b/tools/speed-comparison/TestProjects.sln
index 5d0108239c..6d326352a8 100644
--- a/tools/speed-comparison/TestProjects.sln
+++ b/tools/speed-comparison/TestProjects.sln
@@ -8,6 +8,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NUnitTimer", "NUnitTimer\NU
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MSTestTimer", "MSTestTimer\MSTestTimer\MSTestTimer.csproj", "{B225ACB3-8E1B-4649-8D51-ADBFCFFA48E8}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tests.Benchmark", "Tests.Benchmark\Tests.Benchmark.csproj", "{F8678629-33C9-4A75-9575-CB8EC1DA218E}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -30,5 +32,9 @@ Global
{B225ACB3-8E1B-4649-8D51-ADBFCFFA48E8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B225ACB3-8E1B-4649-8D51-ADBFCFFA48E8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B225ACB3-8E1B-4649-8D51-ADBFCFFA48E8}.Release|Any CPU.Build.0 = Release|Any CPU
+ {F8678629-33C9-4A75-9575-CB8EC1DA218E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {F8678629-33C9-4A75-9575-CB8EC1DA218E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F8678629-33C9-4A75-9575-CB8EC1DA218E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {F8678629-33C9-4A75-9575-CB8EC1DA218E}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
EndGlobal
diff --git a/tools/speed-comparison/Tests.Benchmark/Benchmarks.cs b/tools/speed-comparison/Tests.Benchmark/Benchmarks.cs
new file mode 100644
index 0000000000..979443d35e
--- /dev/null
+++ b/tools/speed-comparison/Tests.Benchmark/Benchmarks.cs
@@ -0,0 +1,43 @@
+using System.Diagnostics;
+using BenchmarkDotNet.Attributes;
+using Process = System.Diagnostics.Process;
+
+[MarkdownExporterAttribute.GitHub]
+public class Benchmarks
+{
+ [Benchmark]
+ public async Task TUnit()
+ {
+ await Process.Start(new ProcessStartInfo("dotnet", "run")
+ {
+ WorkingDirectory = "../../../../TUnitTimer",
+ })!.WaitForExitAsync();
+ }
+
+ [Benchmark]
+ public async Task NUnit()
+ {
+ await Process.Start(new ProcessStartInfo("dotnet", "test")
+ {
+ WorkingDirectory = "../../../../NUnitTimer",
+ })!.WaitForExitAsync();
+ }
+
+ [Benchmark]
+ public async Task xUnit()
+ {
+ await Process.Start(new ProcessStartInfo("dotnet", "test")
+ {
+ WorkingDirectory = "../../../../xUnitTimer",
+ })!.WaitForExitAsync();
+ }
+
+ [Benchmark]
+ public async Task MSTest()
+ {
+ await Process.Start(new ProcessStartInfo("dotnet", "test")
+ {
+ WorkingDirectory = "../../../../MSTestTimer",
+ })!.WaitForExitAsync();
+ }
+}
\ No newline at end of file
diff --git a/tools/speed-comparison/Tests.Benchmark/Program.cs b/tools/speed-comparison/Tests.Benchmark/Program.cs
new file mode 100644
index 0000000000..14c999dd9a
--- /dev/null
+++ b/tools/speed-comparison/Tests.Benchmark/Program.cs
@@ -0,0 +1,14 @@
+using BenchmarkDotNet.Running;
+
+BenchmarkRunner.Run();
+
+var output = new DirectoryInfo(Environment.CurrentDirectory)
+ .GetFiles("*.md", SearchOption.AllDirectories)
+ .First();
+
+var file = Environment.GetEnvironmentVariable("GITHUB_STEP_SUMMARY");
+
+if (!string.IsNullOrEmpty(file))
+{
+ await File.WriteAllTextAsync(file, await File.ReadAllTextAsync(output.FullName));
+}
\ No newline at end of file
diff --git a/tools/speed-comparison/Tests.Benchmark/Tests.Benchmark.csproj b/tools/speed-comparison/Tests.Benchmark/Tests.Benchmark.csproj
new file mode 100644
index 0000000000..552fcf72e5
--- /dev/null
+++ b/tools/speed-comparison/Tests.Benchmark/Tests.Benchmark.csproj
@@ -0,0 +1,14 @@
+
+
+
+ Exe
+ net8.0
+ enable
+ enable
+
+
+
+
+
+
+
From b83bfbfec06850b2b31eb06ad6fd6ccbfef03528 Mon Sep 17 00:00:00 2001
From: Tom Longhurst <30480171+thomhurst@users.noreply.github.com>
Date: Sun, 1 Sep 2024 23:59:02 +0100
Subject: [PATCH 02/15] Speed up
---
tools/speed-comparison/MSTestTimer/MSTestTimer/Tests.cs | 2 +-
tools/speed-comparison/NUnitTimer/NUnitTimer/Tests.cs | 2 +-
tools/speed-comparison/TUnitTimer/TUnitTimer/Tests.cs | 2 +-
tools/speed-comparison/xUnitTimer/xUnitTimer/Tests.cs | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/tools/speed-comparison/MSTestTimer/MSTestTimer/Tests.cs b/tools/speed-comparison/MSTestTimer/MSTestTimer/Tests.cs
index 35bf8b7afe..6be2ad5f00 100644
--- a/tools/speed-comparison/MSTestTimer/MSTestTimer/Tests.cs
+++ b/tools/speed-comparison/MSTestTimer/MSTestTimer/Tests.cs
@@ -23,7 +23,7 @@ public static void Cleanup()
[DynamicData(nameof(Repeat), DynamicDataSourceType.Method)]
public async Task TestMethod1(int _)
{
- await Task.Delay(50);
+ await Task.CompletedTask;
}
public static IEnumerable
diff --git a/tools/speed-comparison/TUnitTimer/TUnitTimer/TUnitTimer.csproj b/tools/speed-comparison/TUnitTimer/TUnitTimer/TUnitTimer.csproj
index 16b7e3f3d7..d31495f482 100644
--- a/tools/speed-comparison/TUnitTimer/TUnitTimer/TUnitTimer.csproj
+++ b/tools/speed-comparison/TUnitTimer/TUnitTimer/TUnitTimer.csproj
@@ -3,8 +3,6 @@
net8.0
enable
enable
- false
- true
From ab1f2401f86dd19c5be6147b21e0bc043fcc470a Mon Sep 17 00:00:00 2001
From: Tom Longhurst <30480171+thomhurst@users.noreply.github.com>
Date: Mon, 2 Sep 2024 00:16:53 +0100
Subject: [PATCH 07/15] Fix
---
tools/speed-comparison/Tests.Benchmark/Benchmarks.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/speed-comparison/Tests.Benchmark/Benchmarks.cs b/tools/speed-comparison/Tests.Benchmark/Benchmarks.cs
index 0bc6d6e2ce..2f364a396e 100644
--- a/tools/speed-comparison/Tests.Benchmark/Benchmarks.cs
+++ b/tools/speed-comparison/Tests.Benchmark/Benchmarks.cs
@@ -55,6 +55,6 @@ private static string GetProjectPath(string name)
folder = folder.Parent!;
}
- return Path.Combine(folder.FullName, name);
+ return Path.Combine(folder.FullName, name, name);
}
}
\ No newline at end of file
From 45a792b846facc859f13a8b3b088afb14488c35e Mon Sep 17 00:00:00 2001
From: Tom Longhurst <30480171+thomhurst@users.noreply.github.com>
Date: Mon, 2 Sep 2024 00:18:45 +0100
Subject: [PATCH 08/15] Update libs
---
Directory.Packages.props | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/Directory.Packages.props b/Directory.Packages.props
index 9182aafa28..89854273f3 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -26,9 +26,9 @@
-
-
-
+
+
+
From fde1bb6775f67ddd3c354e0eecf2068848139081 Mon Sep 17 00:00:00 2001
From: Tom Longhurst <30480171+thomhurst@users.noreply.github.com>
Date: Mon, 2 Sep 2024 00:19:30 +0100
Subject: [PATCH 09/15] Remove redundant pipeline proj
---
.../.idea/.gitignore | 13 --------
.../.idea/encodings.xml | 4 ---
.../.idea/material_theme_project_new.xml | 13 --------
.../TUnit.SpeedComparison.Pipeline.sln | 16 ----------
.../FindProjectsModule.cs | 31 -------------------
.../MSTestModule.cs | 28 -----------------
.../NUnitModule.cs | 28 -----------------
.../TUnit.SpeedComparison.Pipeline/Program.cs | 10 ------
.../ProjectPaths.cs | 11 -------
.../TUnit.SpeedComparison.Pipeline.csproj | 13 --------
.../TUnitModule.cs | 29 -----------------
.../xUnitModule.cs | 28 -----------------
12 files changed, 224 deletions(-)
delete mode 100644 tools/speed-comparison/TUnit.SpeedComparison.Pipeline/.idea/.idea.TUnit.SpeedComparison.Pipeline/.idea/.gitignore
delete mode 100644 tools/speed-comparison/TUnit.SpeedComparison.Pipeline/.idea/.idea.TUnit.SpeedComparison.Pipeline/.idea/encodings.xml
delete mode 100644 tools/speed-comparison/TUnit.SpeedComparison.Pipeline/.idea/.idea.TUnit.SpeedComparison.Pipeline/.idea/material_theme_project_new.xml
delete mode 100644 tools/speed-comparison/TUnit.SpeedComparison.Pipeline/TUnit.SpeedComparison.Pipeline.sln
delete mode 100644 tools/speed-comparison/TUnit.SpeedComparison.Pipeline/TUnit.SpeedComparison.Pipeline/FindProjectsModule.cs
delete mode 100644 tools/speed-comparison/TUnit.SpeedComparison.Pipeline/TUnit.SpeedComparison.Pipeline/MSTestModule.cs
delete mode 100644 tools/speed-comparison/TUnit.SpeedComparison.Pipeline/TUnit.SpeedComparison.Pipeline/NUnitModule.cs
delete mode 100644 tools/speed-comparison/TUnit.SpeedComparison.Pipeline/TUnit.SpeedComparison.Pipeline/Program.cs
delete mode 100644 tools/speed-comparison/TUnit.SpeedComparison.Pipeline/TUnit.SpeedComparison.Pipeline/ProjectPaths.cs
delete mode 100644 tools/speed-comparison/TUnit.SpeedComparison.Pipeline/TUnit.SpeedComparison.Pipeline/TUnit.SpeedComparison.Pipeline.csproj
delete mode 100644 tools/speed-comparison/TUnit.SpeedComparison.Pipeline/TUnit.SpeedComparison.Pipeline/TUnitModule.cs
delete mode 100644 tools/speed-comparison/TUnit.SpeedComparison.Pipeline/TUnit.SpeedComparison.Pipeline/xUnitModule.cs
diff --git a/tools/speed-comparison/TUnit.SpeedComparison.Pipeline/.idea/.idea.TUnit.SpeedComparison.Pipeline/.idea/.gitignore b/tools/speed-comparison/TUnit.SpeedComparison.Pipeline/.idea/.idea.TUnit.SpeedComparison.Pipeline/.idea/.gitignore
deleted file mode 100644
index 3b3e058f8e..0000000000
--- a/tools/speed-comparison/TUnit.SpeedComparison.Pipeline/.idea/.idea.TUnit.SpeedComparison.Pipeline/.idea/.gitignore
+++ /dev/null
@@ -1,13 +0,0 @@
-# Default ignored files
-/shelf/
-/workspace.xml
-# Rider ignored files
-/.idea.TUnit.SpeedComparison.Pipeline.iml
-/modules.xml
-/contentModel.xml
-/projectSettingsUpdater.xml
-# Editor-based HTTP Client requests
-/httpRequests/
-# Datasource local storage ignored files
-/dataSources/
-/dataSources.local.xml
diff --git a/tools/speed-comparison/TUnit.SpeedComparison.Pipeline/.idea/.idea.TUnit.SpeedComparison.Pipeline/.idea/encodings.xml b/tools/speed-comparison/TUnit.SpeedComparison.Pipeline/.idea/.idea.TUnit.SpeedComparison.Pipeline/.idea/encodings.xml
deleted file mode 100644
index df87cf951f..0000000000
--- a/tools/speed-comparison/TUnit.SpeedComparison.Pipeline/.idea/.idea.TUnit.SpeedComparison.Pipeline/.idea/encodings.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/tools/speed-comparison/TUnit.SpeedComparison.Pipeline/.idea/.idea.TUnit.SpeedComparison.Pipeline/.idea/material_theme_project_new.xml b/tools/speed-comparison/TUnit.SpeedComparison.Pipeline/.idea/.idea.TUnit.SpeedComparison.Pipeline/.idea/material_theme_project_new.xml
deleted file mode 100644
index a4167976b0..0000000000
--- a/tools/speed-comparison/TUnit.SpeedComparison.Pipeline/.idea/.idea.TUnit.SpeedComparison.Pipeline/.idea/material_theme_project_new.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/tools/speed-comparison/TUnit.SpeedComparison.Pipeline/TUnit.SpeedComparison.Pipeline.sln b/tools/speed-comparison/TUnit.SpeedComparison.Pipeline/TUnit.SpeedComparison.Pipeline.sln
deleted file mode 100644
index 062957c36a..0000000000
--- a/tools/speed-comparison/TUnit.SpeedComparison.Pipeline/TUnit.SpeedComparison.Pipeline.sln
+++ /dev/null
@@ -1,16 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TUnit.SpeedComparison.Pipeline", "TUnit.SpeedComparison.Pipeline\TUnit.SpeedComparison.Pipeline.csproj", "{B41449E1-D040-458A-862A-CD0958B06CA1}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {B41449E1-D040-458A-862A-CD0958B06CA1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {B41449E1-D040-458A-862A-CD0958B06CA1}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {B41449E1-D040-458A-862A-CD0958B06CA1}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {B41449E1-D040-458A-862A-CD0958B06CA1}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
-EndGlobal
diff --git a/tools/speed-comparison/TUnit.SpeedComparison.Pipeline/TUnit.SpeedComparison.Pipeline/FindProjectsModule.cs b/tools/speed-comparison/TUnit.SpeedComparison.Pipeline/TUnit.SpeedComparison.Pipeline/FindProjectsModule.cs
deleted file mode 100644
index d439d3fb7f..0000000000
--- a/tools/speed-comparison/TUnit.SpeedComparison.Pipeline/TUnit.SpeedComparison.Pipeline/FindProjectsModule.cs
+++ /dev/null
@@ -1,31 +0,0 @@
-using ModularPipelines.Context;
-using ModularPipelines.Extensions;
-using ModularPipelines.Git.Extensions;
-using ModularPipelines.Modules;
-using File = ModularPipelines.FileSystem.File;
-
-namespace TUnit.SpeedComparison.Pipeline;
-
-public class FindProjectsModule : Module
-{
- protected override async Task ExecuteAsync(IPipelineContext context, CancellationToken cancellationToken)
- {
- await Task.Yield();
- return new ProjectPaths
- {
- TUnit = Find(context, "TUnitTimer.csproj"),
- xUnit = Find(context, "xUnitTimer.csproj"),
- NUnit = Find(context, "NUnitTimer.csproj"),
- MSTest = Find(context, "MSTestTimer.csproj"),
- };
- }
-
- private File Find(IPipelineContext context, string fileName)
- {
- return context.Git()
- .RootDirectory
- .AssertExists()
- .FindFile(x => x.Name == fileName)
- .AssertExists();
- }
-}
\ No newline at end of file
diff --git a/tools/speed-comparison/TUnit.SpeedComparison.Pipeline/TUnit.SpeedComparison.Pipeline/MSTestModule.cs b/tools/speed-comparison/TUnit.SpeedComparison.Pipeline/TUnit.SpeedComparison.Pipeline/MSTestModule.cs
deleted file mode 100644
index d1ed177e4c..0000000000
--- a/tools/speed-comparison/TUnit.SpeedComparison.Pipeline/TUnit.SpeedComparison.Pipeline/MSTestModule.cs
+++ /dev/null
@@ -1,28 +0,0 @@
-using ModularPipelines.Attributes;
-using ModularPipelines.Context;
-using ModularPipelines.DotNet.Extensions;
-using ModularPipelines.DotNet.Options;
-using ModularPipelines.Extensions;
-using ModularPipelines.Git.Extensions;
-using ModularPipelines.GitHub.Extensions;
-using ModularPipelines.Models;
-using ModularPipelines.Modules;
-
-namespace TUnit.SpeedComparison.Pipeline;
-
-[NotInParallel("SpeedComparison")]
-[DependsOn]
-public class MSTestModule : Module
-{
- protected override async Task ExecuteAsync(IPipelineContext context, CancellationToken cancellationToken)
- {
- var projectPaths = await GetModule();
- var project = projectPaths.Value!.MSTest;
-
- return await context.DotNet().Test(new DotNetTestOptions(project)
- {
- Configuration = Configuration.Release,
- NoBuild = true
- }, cancellationToken);
- }
-}
\ No newline at end of file
diff --git a/tools/speed-comparison/TUnit.SpeedComparison.Pipeline/TUnit.SpeedComparison.Pipeline/NUnitModule.cs b/tools/speed-comparison/TUnit.SpeedComparison.Pipeline/TUnit.SpeedComparison.Pipeline/NUnitModule.cs
deleted file mode 100644
index f7c6edc5ab..0000000000
--- a/tools/speed-comparison/TUnit.SpeedComparison.Pipeline/TUnit.SpeedComparison.Pipeline/NUnitModule.cs
+++ /dev/null
@@ -1,28 +0,0 @@
-using ModularPipelines.Attributes;
-using ModularPipelines.Context;
-using ModularPipelines.DotNet.Extensions;
-using ModularPipelines.DotNet.Options;
-using ModularPipelines.Extensions;
-using ModularPipelines.Git.Extensions;
-using ModularPipelines.GitHub.Extensions;
-using ModularPipelines.Models;
-using ModularPipelines.Modules;
-
-namespace TUnit.SpeedComparison.Pipeline;
-
-[NotInParallel("SpeedComparison")]
-[DependsOn]
-public class NUnitModule : Module
-{
- protected override async Task ExecuteAsync(IPipelineContext context, CancellationToken cancellationToken)
- {
- var projectPaths = await GetModule();
- var project = projectPaths.Value!.NUnit;
-
- return await context.DotNet().Test(new DotNetTestOptions(project)
- {
- Configuration = Configuration.Release,
- NoBuild = true
- }, cancellationToken);
- }
-}
\ No newline at end of file
diff --git a/tools/speed-comparison/TUnit.SpeedComparison.Pipeline/TUnit.SpeedComparison.Pipeline/Program.cs b/tools/speed-comparison/TUnit.SpeedComparison.Pipeline/TUnit.SpeedComparison.Pipeline/Program.cs
deleted file mode 100644
index aa30c683fc..0000000000
--- a/tools/speed-comparison/TUnit.SpeedComparison.Pipeline/TUnit.SpeedComparison.Pipeline/Program.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-using ModularPipelines.Host;
-using TUnit.SpeedComparison.Pipeline;
-
-await PipelineHostBuilder.Create()
- .AddModule()
- .AddModule()
- .AddModule()
- .AddModule()
- .AddModule()
- .ExecutePipelineAsync();
\ No newline at end of file
diff --git a/tools/speed-comparison/TUnit.SpeedComparison.Pipeline/TUnit.SpeedComparison.Pipeline/ProjectPaths.cs b/tools/speed-comparison/TUnit.SpeedComparison.Pipeline/TUnit.SpeedComparison.Pipeline/ProjectPaths.cs
deleted file mode 100644
index a15e1aac16..0000000000
--- a/tools/speed-comparison/TUnit.SpeedComparison.Pipeline/TUnit.SpeedComparison.Pipeline/ProjectPaths.cs
+++ /dev/null
@@ -1,11 +0,0 @@
-using File = ModularPipelines.FileSystem.File;
-
-namespace TUnit.SpeedComparison.Pipeline;
-
-public record ProjectPaths
-{
- public required File TUnit { get; init; }
- public required File xUnit { get; init; }
- public required File NUnit { get; init; }
- public required File MSTest { get; init; }
-}
\ No newline at end of file
diff --git a/tools/speed-comparison/TUnit.SpeedComparison.Pipeline/TUnit.SpeedComparison.Pipeline/TUnit.SpeedComparison.Pipeline.csproj b/tools/speed-comparison/TUnit.SpeedComparison.Pipeline/TUnit.SpeedComparison.Pipeline/TUnit.SpeedComparison.Pipeline.csproj
deleted file mode 100644
index 5f1506ff53..0000000000
--- a/tools/speed-comparison/TUnit.SpeedComparison.Pipeline/TUnit.SpeedComparison.Pipeline/TUnit.SpeedComparison.Pipeline.csproj
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
- Exe
- net8.0
- enable
- enable
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/tools/speed-comparison/TUnit.SpeedComparison.Pipeline/TUnit.SpeedComparison.Pipeline/TUnitModule.cs b/tools/speed-comparison/TUnit.SpeedComparison.Pipeline/TUnit.SpeedComparison.Pipeline/TUnitModule.cs
deleted file mode 100644
index 4f67a57868..0000000000
--- a/tools/speed-comparison/TUnit.SpeedComparison.Pipeline/TUnit.SpeedComparison.Pipeline/TUnitModule.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-using ModularPipelines.Attributes;
-using ModularPipelines.Context;
-using ModularPipelines.DotNet.Extensions;
-using ModularPipelines.DotNet.Options;
-using ModularPipelines.Extensions;
-using ModularPipelines.Git.Extensions;
-using ModularPipelines.GitHub.Extensions;
-using ModularPipelines.Models;
-using ModularPipelines.Modules;
-
-namespace TUnit.SpeedComparison.Pipeline;
-
-[NotInParallel("SpeedComparison")]
-[DependsOn]
-public class TUnitModule : Module
-{
- protected override async Task ExecuteAsync(IPipelineContext context, CancellationToken cancellationToken)
- {
- var projectPaths = await GetModule();
- var project = projectPaths.Value!.TUnit;
-
- return await context.DotNet().Run(new DotNetRunOptions
- {
- Project = project,
- Configuration = Configuration.Release,
- NoBuild = true
- }, cancellationToken);
- }
-}
\ No newline at end of file
diff --git a/tools/speed-comparison/TUnit.SpeedComparison.Pipeline/TUnit.SpeedComparison.Pipeline/xUnitModule.cs b/tools/speed-comparison/TUnit.SpeedComparison.Pipeline/TUnit.SpeedComparison.Pipeline/xUnitModule.cs
deleted file mode 100644
index b9d47fb5da..0000000000
--- a/tools/speed-comparison/TUnit.SpeedComparison.Pipeline/TUnit.SpeedComparison.Pipeline/xUnitModule.cs
+++ /dev/null
@@ -1,28 +0,0 @@
-using ModularPipelines.Attributes;
-using ModularPipelines.Context;
-using ModularPipelines.DotNet.Extensions;
-using ModularPipelines.DotNet.Options;
-using ModularPipelines.Extensions;
-using ModularPipelines.Git.Extensions;
-using ModularPipelines.GitHub.Extensions;
-using ModularPipelines.Models;
-using ModularPipelines.Modules;
-
-namespace TUnit.SpeedComparison.Pipeline;
-
-[NotInParallel("SpeedComparison")]
-[DependsOn]
-public class xUnitModule : Module
-{
- protected override async Task ExecuteAsync(IPipelineContext context, CancellationToken cancellationToken)
- {
- var projectPaths = await GetModule();
- var project = projectPaths.Value!.xUnit;
-
- return await context.DotNet().Test(new DotNetTestOptions(project)
- {
- Configuration = Configuration.Release,
- NoBuild = true
- }, cancellationToken);
- }
-}
\ No newline at end of file
From 215858a085c087efc627707cbdde216d8d95111d Mon Sep 17 00:00:00 2001
From: Tom Longhurst <30480171+thomhurst@users.noreply.github.com>
Date: Mon, 2 Sep 2024 00:26:11 +0100
Subject: [PATCH 10/15] Simplify
---
.../MSTestTimer/MSTestTimer/Tests.cs | 21 ++-----------------
.../NUnitTimer/NUnitTimer/Tests.cs | 20 ++----------------
.../TUnitTimer/TUnitTimer/Tests.cs | 20 ++----------------
.../xUnitTimer/xUnitTimer/Tests.cs | 11 ++--------
.../xUnitTimer/xUnitTimer/Timer.cs | 13 ------------
5 files changed, 8 insertions(+), 77 deletions(-)
delete mode 100644 tools/speed-comparison/xUnitTimer/xUnitTimer/Timer.cs
diff --git a/tools/speed-comparison/MSTestTimer/MSTestTimer/Tests.cs b/tools/speed-comparison/MSTestTimer/MSTestTimer/Tests.cs
index 6be2ad5f00..e81dc8b9fb 100644
--- a/tools/speed-comparison/MSTestTimer/MSTestTimer/Tests.cs
+++ b/tools/speed-comparison/MSTestTimer/MSTestTimer/Tests.cs
@@ -5,32 +5,15 @@ namespace MSTestTimer;
[TestClass]
public class Tests
{
- private static readonly Stopwatch Stopwatch = new();
-
- [ClassInitialize]
- public static void Setup(TestContext _)
- {
- Stopwatch.Start();
- }
-
- [ClassCleanup]
- public static void Cleanup()
- {
- Console.WriteLine(Stopwatch.Elapsed);
- }
-
[TestMethod]
[DynamicData(nameof(Repeat), DynamicDataSourceType.Method)]
public async Task TestMethod1(int _)
{
- await Task.CompletedTask;
+ await Task.Delay(50);
}
public static IEnumerable Repeat()
{
- foreach (var i in Enumerable.Range(0, 1001))
- {
- yield return [i];
- }
+ return Enumerable.Range(0, 10).Select(i => (object[])[i]);
}
}
\ No newline at end of file
diff --git a/tools/speed-comparison/NUnitTimer/NUnitTimer/Tests.cs b/tools/speed-comparison/NUnitTimer/NUnitTimer/Tests.cs
index 10736f851e..3f05a065ed 100644
--- a/tools/speed-comparison/NUnitTimer/NUnitTimer/Tests.cs
+++ b/tools/speed-comparison/NUnitTimer/NUnitTimer/Tests.cs
@@ -1,27 +1,11 @@
-using System.Diagnostics;
-
namespace NUnitTimer;
[Parallelizable(ParallelScope.All)]
public class Tests
{
- private readonly Stopwatch _stopwatch = new();
-
- [OneTimeSetUp]
- public void Setup()
- {
- _stopwatch.Start();
- }
-
- [OneTimeTearDown]
- public void Teardown()
- {
- Console.WriteLine(_stopwatch.Elapsed);
- }
-
- [Test, Repeat(1_000)]
+ [Test, Repeat(10)]
public async Task Test1()
{
- await Task.CompletedTask;
+ await Task.Delay(50);
}
}
\ No newline at end of file
diff --git a/tools/speed-comparison/TUnitTimer/TUnitTimer/Tests.cs b/tools/speed-comparison/TUnitTimer/TUnitTimer/Tests.cs
index 56b14bc824..ce4282f3f4 100644
--- a/tools/speed-comparison/TUnitTimer/TUnitTimer/Tests.cs
+++ b/tools/speed-comparison/TUnitTimer/TUnitTimer/Tests.cs
@@ -1,26 +1,10 @@
-using System.Diagnostics;
-
namespace TUnitTimer;
public class Tests
{
- private static readonly Stopwatch Stopwatch = new();
-
- [Before(Class)]
- public static void Setup()
- {
- Stopwatch.Start();
- }
-
- [After(Class)]
- public static void Teardown()
- {
- Console.WriteLine(Stopwatch.Elapsed);
- }
-
- [Test, Repeat(1_000)]
+ [Test, Repeat(9)]
public async Task Test1()
{
- await Task.CompletedTask;
+ await Task.Delay(50);
}
}
\ No newline at end of file
diff --git a/tools/speed-comparison/xUnitTimer/xUnitTimer/Tests.cs b/tools/speed-comparison/xUnitTimer/xUnitTimer/Tests.cs
index f679d137f7..88385ee177 100644
--- a/tools/speed-comparison/xUnitTimer/xUnitTimer/Tests.cs
+++ b/tools/speed-comparison/xUnitTimer/xUnitTimer/Tests.cs
@@ -2,21 +2,14 @@ namespace xUnitTimer;
public class Tests : IClassFixture
{
- public Tests(Timer timer)
- {
- }
-
[Theory, MemberData(nameof(Repeat))]
public async Task Test1(object _)
{
- await Task.CompletedTask;
+ await Task.Delay(50);
}
public static IEnumerable Repeat()
{
- foreach (var i in Enumerable.Range(0, 1001))
- {
- yield return [i];
- }
+ return Enumerable.Range(0, 10).Select(i => (object[])[i]);
}
}
\ No newline at end of file
diff --git a/tools/speed-comparison/xUnitTimer/xUnitTimer/Timer.cs b/tools/speed-comparison/xUnitTimer/xUnitTimer/Timer.cs
deleted file mode 100644
index 82cd6f9308..0000000000
--- a/tools/speed-comparison/xUnitTimer/xUnitTimer/Timer.cs
+++ /dev/null
@@ -1,13 +0,0 @@
-using System.Diagnostics;
-
-namespace xUnitTimer;
-
-public class Timer : IDisposable
-{
- private readonly Stopwatch _stopwatch = Stopwatch.StartNew();
-
- public void Dispose()
- {
- Console.WriteLine(_stopwatch.Elapsed);
- }
-}
\ No newline at end of file
From 0d439b3a740fcc37124b2454a06ddd2958eca8f0 Mon Sep 17 00:00:00 2001
From: Tom Longhurst <30480171+thomhurst@users.noreply.github.com>
Date: Mon, 2 Sep 2024 00:26:26 +0100
Subject: [PATCH 11/15] Tidy usings
---
tools/speed-comparison/MSTestTimer/MSTestTimer/Tests.cs | 2 --
1 file changed, 2 deletions(-)
diff --git a/tools/speed-comparison/MSTestTimer/MSTestTimer/Tests.cs b/tools/speed-comparison/MSTestTimer/MSTestTimer/Tests.cs
index e81dc8b9fb..4b04921e9e 100644
--- a/tools/speed-comparison/MSTestTimer/MSTestTimer/Tests.cs
+++ b/tools/speed-comparison/MSTestTimer/MSTestTimer/Tests.cs
@@ -1,5 +1,3 @@
-using System.Diagnostics;
-
namespace MSTestTimer;
[TestClass]
From d5cfa593675ff067c5fc638aaae6da141efdf1be Mon Sep 17 00:00:00 2001
From: Tom Longhurst <30480171+thomhurst@users.noreply.github.com>
Date: Mon, 2 Sep 2024 00:27:48 +0100
Subject: [PATCH 12/15] --no-build
---
tools/speed-comparison/Tests.Benchmark/Benchmarks.cs | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/tools/speed-comparison/Tests.Benchmark/Benchmarks.cs b/tools/speed-comparison/Tests.Benchmark/Benchmarks.cs
index 2f364a396e..b6a1c1fbe3 100644
--- a/tools/speed-comparison/Tests.Benchmark/Benchmarks.cs
+++ b/tools/speed-comparison/Tests.Benchmark/Benchmarks.cs
@@ -13,7 +13,7 @@ public class Benchmarks
[Benchmark]
public async Task TUnit()
{
- await Process.Start(new ProcessStartInfo("dotnet", "run")
+ await Process.Start(new ProcessStartInfo("dotnet", "run --no-build")
{
WorkingDirectory = TUnitPath,
})!.WaitForExitAsync();
@@ -22,7 +22,7 @@ await Process.Start(new ProcessStartInfo("dotnet", "run")
[Benchmark]
public async Task NUnit()
{
- await Process.Start(new ProcessStartInfo("dotnet", "test")
+ await Process.Start(new ProcessStartInfo("dotnet", "test --no-build")
{
WorkingDirectory = NUnitPath,
})!.WaitForExitAsync();
@@ -31,7 +31,7 @@ await Process.Start(new ProcessStartInfo("dotnet", "test")
[Benchmark]
public async Task xUnit()
{
- await Process.Start(new ProcessStartInfo("dotnet", "test")
+ await Process.Start(new ProcessStartInfo("dotnet", "test --no-build")
{
WorkingDirectory = xUnitPath,
})!.WaitForExitAsync();
@@ -40,7 +40,7 @@ await Process.Start(new ProcessStartInfo("dotnet", "test")
[Benchmark]
public async Task MSTest()
{
- await Process.Start(new ProcessStartInfo("dotnet", "test")
+ await Process.Start(new ProcessStartInfo("dotnet", "test --no-build")
{
WorkingDirectory = MSTestPath,
})!.WaitForExitAsync();
From c59edbe8f6e23eaed3ddbaef7d4f08773c63f462 Mon Sep 17 00:00:00 2001
From: Tom Longhurst <30480171+thomhurst@users.noreply.github.com>
Date: Mon, 2 Sep 2024 00:28:14 +0100
Subject: [PATCH 13/15] -c Release
---
tools/speed-comparison/Tests.Benchmark/Benchmarks.cs | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/tools/speed-comparison/Tests.Benchmark/Benchmarks.cs b/tools/speed-comparison/Tests.Benchmark/Benchmarks.cs
index b6a1c1fbe3..2849afbae9 100644
--- a/tools/speed-comparison/Tests.Benchmark/Benchmarks.cs
+++ b/tools/speed-comparison/Tests.Benchmark/Benchmarks.cs
@@ -13,7 +13,7 @@ public class Benchmarks
[Benchmark]
public async Task TUnit()
{
- await Process.Start(new ProcessStartInfo("dotnet", "run --no-build")
+ await Process.Start(new ProcessStartInfo("dotnet", "run --no-build -c Release")
{
WorkingDirectory = TUnitPath,
})!.WaitForExitAsync();
@@ -22,7 +22,7 @@ await Process.Start(new ProcessStartInfo("dotnet", "run --no-build")
[Benchmark]
public async Task NUnit()
{
- await Process.Start(new ProcessStartInfo("dotnet", "test --no-build")
+ await Process.Start(new ProcessStartInfo("dotnet", "test --no-build -c Release")
{
WorkingDirectory = NUnitPath,
})!.WaitForExitAsync();
@@ -31,7 +31,7 @@ await Process.Start(new ProcessStartInfo("dotnet", "test --no-build")
[Benchmark]
public async Task xUnit()
{
- await Process.Start(new ProcessStartInfo("dotnet", "test --no-build")
+ await Process.Start(new ProcessStartInfo("dotnet", "test --no-build -c Release")
{
WorkingDirectory = xUnitPath,
})!.WaitForExitAsync();
@@ -40,7 +40,7 @@ await Process.Start(new ProcessStartInfo("dotnet", "test --no-build")
[Benchmark]
public async Task MSTest()
{
- await Process.Start(new ProcessStartInfo("dotnet", "test --no-build")
+ await Process.Start(new ProcessStartInfo("dotnet", "test --no-build -c Release")
{
WorkingDirectory = MSTestPath,
})!.WaitForExitAsync();
From 1c58f0900773d006acd6d805a424273126174a1c Mon Sep 17 00:00:00 2001
From: Tom Longhurst <30480171+thomhurst@users.noreply.github.com>
Date: Mon, 2 Sep 2024 00:33:10 +0100
Subject: [PATCH 14/15] Fix
---
tools/speed-comparison/xUnitTimer/xUnitTimer/Tests.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/speed-comparison/xUnitTimer/xUnitTimer/Tests.cs b/tools/speed-comparison/xUnitTimer/xUnitTimer/Tests.cs
index 88385ee177..19a7c817c3 100644
--- a/tools/speed-comparison/xUnitTimer/xUnitTimer/Tests.cs
+++ b/tools/speed-comparison/xUnitTimer/xUnitTimer/Tests.cs
@@ -1,6 +1,6 @@
namespace xUnitTimer;
-public class Tests : IClassFixture
+public class Tests
{
[Theory, MemberData(nameof(Repeat))]
public async Task Test1(object _)
From 13e9741c4f437f5b6e048f946c47e5f034bb607f Mon Sep 17 00:00:00 2001
From: Tom Longhurst <30480171+thomhurst@users.noreply.github.com>
Date: Mon, 2 Sep 2024 00:34:11 +0100
Subject: [PATCH 15/15] 100
---
tools/speed-comparison/MSTestTimer/MSTestTimer/Tests.cs | 2 +-
tools/speed-comparison/NUnitTimer/NUnitTimer/Tests.cs | 2 +-
tools/speed-comparison/TUnitTimer/TUnitTimer/Tests.cs | 2 +-
tools/speed-comparison/xUnitTimer/xUnitTimer/Tests.cs | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/tools/speed-comparison/MSTestTimer/MSTestTimer/Tests.cs b/tools/speed-comparison/MSTestTimer/MSTestTimer/Tests.cs
index 4b04921e9e..55b508d3f4 100644
--- a/tools/speed-comparison/MSTestTimer/MSTestTimer/Tests.cs
+++ b/tools/speed-comparison/MSTestTimer/MSTestTimer/Tests.cs
@@ -12,6 +12,6 @@ public async Task TestMethod1(int _)
public static IEnumerable Repeat()
{
- return Enumerable.Range(0, 10).Select(i => (object[])[i]);
+ return Enumerable.Range(0, 100).Select(i => (object[])[i]);
}
}
\ No newline at end of file
diff --git a/tools/speed-comparison/NUnitTimer/NUnitTimer/Tests.cs b/tools/speed-comparison/NUnitTimer/NUnitTimer/Tests.cs
index 3f05a065ed..181cc22e9a 100644
--- a/tools/speed-comparison/NUnitTimer/NUnitTimer/Tests.cs
+++ b/tools/speed-comparison/NUnitTimer/NUnitTimer/Tests.cs
@@ -3,7 +3,7 @@ namespace NUnitTimer;
[Parallelizable(ParallelScope.All)]
public class Tests
{
- [Test, Repeat(10)]
+ [Test, Repeat(100)]
public async Task Test1()
{
await Task.Delay(50);
diff --git a/tools/speed-comparison/TUnitTimer/TUnitTimer/Tests.cs b/tools/speed-comparison/TUnitTimer/TUnitTimer/Tests.cs
index ce4282f3f4..cc859bf843 100644
--- a/tools/speed-comparison/TUnitTimer/TUnitTimer/Tests.cs
+++ b/tools/speed-comparison/TUnitTimer/TUnitTimer/Tests.cs
@@ -2,7 +2,7 @@ namespace TUnitTimer;
public class Tests
{
- [Test, Repeat(9)]
+ [Test, Repeat(99)]
public async Task Test1()
{
await Task.Delay(50);
diff --git a/tools/speed-comparison/xUnitTimer/xUnitTimer/Tests.cs b/tools/speed-comparison/xUnitTimer/xUnitTimer/Tests.cs
index 19a7c817c3..0daed1da14 100644
--- a/tools/speed-comparison/xUnitTimer/xUnitTimer/Tests.cs
+++ b/tools/speed-comparison/xUnitTimer/xUnitTimer/Tests.cs
@@ -10,6 +10,6 @@ public async Task Test1(object _)
public static IEnumerable Repeat()
{
- return Enumerable.Range(0, 10).Select(i => (object[])[i]);
+ return Enumerable.Range(0, 100).Select(i => (object[])[i]);
}
}
\ No newline at end of file