diff --git a/.github/skills/cli-e2e-testing/SKILL.md b/.github/skills/cli-e2e-testing/SKILL.md
index 02050f28783..8234bee8e3f 100644
--- a/.github/skills/cli-e2e-testing/SKILL.md
+++ b/.github/skills/cli-e2e-testing/SKILL.md
@@ -57,14 +57,8 @@ public sealed class SmokeTests : IAsyncDisposable
var prNumber = CliE2ETestHelpers.GetRequiredPrNumber();
var commitSha = CliE2ETestHelpers.GetRequiredCommitSha();
var isCI = CliE2ETestHelpers.IsRunningInCI;
- var recordingPath = CliE2ETestHelpers.GetTestResultsRecordingPath(nameof(MyCliTest));
- var builder = Hex1bTerminal.CreateBuilder()
- .WithHeadless()
- .WithAsciinemaRecording(recordingPath)
- .WithPtyProcess("/bin/bash", ["--norc"]);
-
- using var terminal = builder.Build();
+ using var terminal = CliE2ETestHelpers.CreateTestTerminal();
var pendingRun = terminal.RunAsync(TestContext.Current.CancellationToken);
@@ -275,7 +269,6 @@ Use `CliE2ETestHelpers` for CI environment variables:
var prNumber = CliE2ETestHelpers.GetRequiredPrNumber(); // GITHUB_PR_NUMBER (0 when local)
var commitSha = CliE2ETestHelpers.GetRequiredCommitSha(); // GITHUB_PR_HEAD_SHA ("local0000" when local)
var isCI = CliE2ETestHelpers.IsRunningInCI; // true when both env vars set
-var recordingPath = CliE2ETestHelpers.GetTestResultsRecordingPath("test-name"); // Appropriate path for CI vs local
```
## DON'T: Use Hard-coded Delays
diff --git a/tests/Aspire.Cli.EndToEnd.Tests/AgentCommandTests.cs b/tests/Aspire.Cli.EndToEnd.Tests/AgentCommandTests.cs
index f3081afc8ac..633d3948da5 100644
--- a/tests/Aspire.Cli.EndToEnd.Tests/AgentCommandTests.cs
+++ b/tests/Aspire.Cli.EndToEnd.Tests/AgentCommandTests.cs
@@ -3,7 +3,6 @@
using Aspire.Cli.EndToEnd.Tests.Helpers;
using Aspire.Cli.Tests.Utils;
-using Hex1b;
using Hex1b.Automation;
using Xunit;
@@ -31,16 +30,7 @@ public async Task AgentCommands_AllHelpOutputs_AreCorrect()
var prNumber = CliE2ETestHelpers.GetRequiredPrNumber();
var commitSha = CliE2ETestHelpers.GetRequiredCommitSha();
var isCI = CliE2ETestHelpers.IsRunningInCI;
- var recordingPath = CliE2ETestHelpers.GetTestResultsRecordingPath(
- nameof(AgentCommands_AllHelpOutputs_AreCorrect));
-
- var builder = Hex1bTerminal.CreateBuilder()
- .WithHeadless()
- .WithDimensions(160, 48)
- .WithAsciinemaRecording(recordingPath)
- .WithPtyProcess("/bin/bash", ["--norc"]);
-
- using var terminal = builder.Build();
+ using var terminal = CliE2ETestHelpers.CreateTestTerminal();
var pendingRun = terminal.RunAsync(TestContext.Current.CancellationToken);
@@ -136,16 +126,7 @@ public async Task AgentInitCommand_MigratesDeprecatedConfig()
var prNumber = CliE2ETestHelpers.GetRequiredPrNumber();
var commitSha = CliE2ETestHelpers.GetRequiredCommitSha();
var isCI = CliE2ETestHelpers.IsRunningInCI;
- var recordingPath = CliE2ETestHelpers.GetTestResultsRecordingPath(
- nameof(AgentInitCommand_MigratesDeprecatedConfig));
-
- var builder = Hex1bTerminal.CreateBuilder()
- .WithHeadless()
- .WithDimensions(160, 48)
- .WithAsciinemaRecording(recordingPath)
- .WithPtyProcess("/bin/bash", ["--norc"]);
-
- using var terminal = builder.Build();
+ using var terminal = CliE2ETestHelpers.CreateTestTerminal();
var pendingRun = terminal.RunAsync(TestContext.Current.CancellationToken);
@@ -255,16 +236,7 @@ public async Task DoctorCommand_DetectsDeprecatedAgentConfig()
var prNumber = CliE2ETestHelpers.GetRequiredPrNumber();
var commitSha = CliE2ETestHelpers.GetRequiredCommitSha();
var isCI = CliE2ETestHelpers.IsRunningInCI;
- var recordingPath = CliE2ETestHelpers.GetTestResultsRecordingPath(
- nameof(DoctorCommand_DetectsDeprecatedAgentConfig));
-
- var builder = Hex1bTerminal.CreateBuilder()
- .WithHeadless()
- .WithDimensions(160, 48)
- .WithAsciinemaRecording(recordingPath)
- .WithPtyProcess("/bin/bash", ["--norc"]);
-
- using var terminal = builder.Build();
+ using var terminal = CliE2ETestHelpers.CreateTestTerminal();
var pendingRun = terminal.RunAsync(TestContext.Current.CancellationToken);
diff --git a/tests/Aspire.Cli.EndToEnd.Tests/BannerTests.cs b/tests/Aspire.Cli.EndToEnd.Tests/BannerTests.cs
index 8a2f19ed57d..5bbd4a2048e 100644
--- a/tests/Aspire.Cli.EndToEnd.Tests/BannerTests.cs
+++ b/tests/Aspire.Cli.EndToEnd.Tests/BannerTests.cs
@@ -3,7 +3,6 @@
using Aspire.Cli.EndToEnd.Tests.Helpers;
using Aspire.Cli.Tests.Utils;
-using Hex1b;
using Hex1b.Automation;
using Xunit;
@@ -23,15 +22,8 @@ public async Task Banner_DisplayedOnFirstRun()
var prNumber = CliE2ETestHelpers.GetRequiredPrNumber();
var commitSha = CliE2ETestHelpers.GetRequiredCommitSha();
var isCI = CliE2ETestHelpers.IsRunningInCI;
- var recordingPath = CliE2ETestHelpers.GetTestResultsRecordingPath(nameof(Banner_DisplayedOnFirstRun));
- var builder = Hex1bTerminal.CreateBuilder()
- .WithHeadless()
- .WithDimensions(160, 48)
- .WithAsciinemaRecording(recordingPath)
- .WithPtyProcess("/bin/bash", ["--norc"]);
-
- using var terminal = builder.Build();
+ using var terminal = CliE2ETestHelpers.CreateTestTerminal();
var pendingRun = terminal.RunAsync(TestContext.Current.CancellationToken);
@@ -94,14 +86,8 @@ public async Task Banner_DisplayedWithExplicitFlag()
var prNumber = CliE2ETestHelpers.GetRequiredPrNumber();
var commitSha = CliE2ETestHelpers.GetRequiredCommitSha();
var isCI = CliE2ETestHelpers.IsRunningInCI;
- var recordingPath = CliE2ETestHelpers.GetTestResultsRecordingPath(nameof(Banner_DisplayedWithExplicitFlag));
-
- var builder = Hex1bTerminal.CreateBuilder()
- .WithHeadless()
- .WithAsciinemaRecording(recordingPath)
- .WithPtyProcess("/bin/bash", ["--norc"]);
- using var terminal = builder.Build();
+ using var terminal = CliE2ETestHelpers.CreateTestTerminal();
var pendingRun = terminal.RunAsync(TestContext.Current.CancellationToken);
@@ -160,14 +146,8 @@ public async Task Banner_NotDisplayedWithNoLogoFlag()
var prNumber = CliE2ETestHelpers.GetRequiredPrNumber();
var commitSha = CliE2ETestHelpers.GetRequiredCommitSha();
var isCI = CliE2ETestHelpers.IsRunningInCI;
- var recordingPath = CliE2ETestHelpers.GetTestResultsRecordingPath(nameof(Banner_NotDisplayedWithNoLogoFlag));
-
- var builder = Hex1bTerminal.CreateBuilder()
- .WithHeadless()
- .WithAsciinemaRecording(recordingPath)
- .WithPtyProcess("/bin/bash", ["--norc"]);
- using var terminal = builder.Build();
+ using var terminal = CliE2ETestHelpers.CreateTestTerminal();
var pendingRun = terminal.RunAsync(TestContext.Current.CancellationToken);
diff --git a/tests/Aspire.Cli.EndToEnd.Tests/DockerDeploymentTests.cs b/tests/Aspire.Cli.EndToEnd.Tests/DockerDeploymentTests.cs
index a61ac5e0133..ea6cf828cab 100644
--- a/tests/Aspire.Cli.EndToEnd.Tests/DockerDeploymentTests.cs
+++ b/tests/Aspire.Cli.EndToEnd.Tests/DockerDeploymentTests.cs
@@ -3,7 +3,6 @@
using Aspire.Cli.EndToEnd.Tests.Helpers;
using Aspire.Cli.Tests.Utils;
-using Hex1b;
using Hex1b.Automation;
using Xunit;
@@ -26,15 +25,7 @@ public async Task CreateAndDeployToDockerCompose()
var prNumber = CliE2ETestHelpers.GetRequiredPrNumber();
var commitSha = CliE2ETestHelpers.GetRequiredCommitSha();
var isCI = CliE2ETestHelpers.IsRunningInCI;
- var recordingPath = CliE2ETestHelpers.GetTestResultsRecordingPath(nameof(CreateAndDeployToDockerCompose));
-
- var builder = Hex1bTerminal.CreateBuilder()
- .WithHeadless()
- .WithDimensions(160, 48)
- .WithAsciinemaRecording(recordingPath)
- .WithPtyProcess("/bin/bash", ["--norc"]);
-
- using var terminal = builder.Build();
+ using var terminal = CliE2ETestHelpers.CreateTestTerminal();
var pendingRun = terminal.RunAsync(TestContext.Current.CancellationToken);
@@ -203,15 +194,7 @@ public async Task CreateAndDeployToDockerComposeInteractive()
var prNumber = CliE2ETestHelpers.GetRequiredPrNumber();
var commitSha = CliE2ETestHelpers.GetRequiredCommitSha();
var isCI = CliE2ETestHelpers.IsRunningInCI;
- var recordingPath = CliE2ETestHelpers.GetTestResultsRecordingPath(nameof(CreateAndDeployToDockerComposeInteractive));
-
- var builder = Hex1bTerminal.CreateBuilder()
- .WithHeadless()
- .WithDimensions(160, 48)
- .WithAsciinemaRecording(recordingPath)
- .WithPtyProcess("/bin/bash", ["--norc"]);
-
- using var terminal = builder.Build();
+ using var terminal = CliE2ETestHelpers.CreateTestTerminal();
var pendingRun = terminal.RunAsync(TestContext.Current.CancellationToken);
diff --git a/tests/Aspire.Cli.EndToEnd.Tests/DoctorCommandTests.cs b/tests/Aspire.Cli.EndToEnd.Tests/DoctorCommandTests.cs
index a9c51496d59..98bfa6bd535 100644
--- a/tests/Aspire.Cli.EndToEnd.Tests/DoctorCommandTests.cs
+++ b/tests/Aspire.Cli.EndToEnd.Tests/DoctorCommandTests.cs
@@ -3,7 +3,6 @@
using Aspire.Cli.EndToEnd.Tests.Helpers;
using Aspire.Cli.Tests.Utils;
-using Hex1b;
using Hex1b.Automation;
using Xunit;
@@ -23,16 +22,7 @@ public async Task DoctorCommand_WithoutSslCertDir_ShowsPartiallyTrusted()
var prNumber = CliE2ETestHelpers.GetRequiredPrNumber();
var commitSha = CliE2ETestHelpers.GetRequiredCommitSha();
var isCI = CliE2ETestHelpers.IsRunningInCI;
- var recordingPath = CliE2ETestHelpers.GetTestResultsRecordingPath(
- nameof(DoctorCommand_WithoutSslCertDir_ShowsPartiallyTrusted));
-
- var builder = Hex1bTerminal.CreateBuilder()
- .WithHeadless()
- .WithDimensions(160, 48)
- .WithAsciinemaRecording(recordingPath)
- .WithPtyProcess("/bin/bash", ["--norc"]);
-
- using var terminal = builder.Build();
+ using var terminal = CliE2ETestHelpers.CreateTestTerminal();
var pendingRun = terminal.RunAsync(TestContext.Current.CancellationToken);
@@ -87,16 +77,7 @@ public async Task DoctorCommand_WithSslCertDir_ShowsTrusted()
var prNumber = CliE2ETestHelpers.GetRequiredPrNumber();
var commitSha = CliE2ETestHelpers.GetRequiredCommitSha();
var isCI = CliE2ETestHelpers.IsRunningInCI;
- var recordingPath = CliE2ETestHelpers.GetTestResultsRecordingPath(
- nameof(DoctorCommand_WithSslCertDir_ShowsTrusted));
-
- var builder = Hex1bTerminal.CreateBuilder()
- .WithHeadless()
- .WithDimensions(160, 48)
- .WithAsciinemaRecording(recordingPath)
- .WithPtyProcess("/bin/bash", ["--norc"]);
-
- using var terminal = builder.Build();
+ using var terminal = CliE2ETestHelpers.CreateTestTerminal();
var pendingRun = terminal.RunAsync(TestContext.Current.CancellationToken);
diff --git a/tests/Aspire.Cli.EndToEnd.Tests/EmptyAppHostTemplateTests.cs b/tests/Aspire.Cli.EndToEnd.Tests/EmptyAppHostTemplateTests.cs
index 384165d596e..de7aaf05c8c 100644
--- a/tests/Aspire.Cli.EndToEnd.Tests/EmptyAppHostTemplateTests.cs
+++ b/tests/Aspire.Cli.EndToEnd.Tests/EmptyAppHostTemplateTests.cs
@@ -3,7 +3,6 @@
using Aspire.Cli.EndToEnd.Tests.Helpers;
using Aspire.Cli.Tests.Utils;
-using Hex1b;
using Hex1b.Automation;
using Xunit;
@@ -23,15 +22,7 @@ public async Task CreateEmptyAppHostProject()
var prNumber = CliE2ETestHelpers.GetRequiredPrNumber();
var commitSha = CliE2ETestHelpers.GetRequiredCommitSha();
var isCI = CliE2ETestHelpers.IsRunningInCI;
- var recordingPath = CliE2ETestHelpers.GetTestResultsRecordingPath(nameof(CreateEmptyAppHostProject));
-
- var builder = Hex1bTerminal.CreateBuilder()
- .WithHeadless()
- .WithDimensions(160, 48)
- .WithAsciinemaRecording(recordingPath)
- .WithPtyProcess("/bin/bash", ["--norc"]);
-
- using var terminal = builder.Build();
+ using var terminal = CliE2ETestHelpers.CreateTestTerminal();
var pendingRun = terminal.RunAsync(TestContext.Current.CancellationToken);
diff --git a/tests/Aspire.Cli.EndToEnd.Tests/Helpers/CliE2ETestHelpers.cs b/tests/Aspire.Cli.EndToEnd.Tests/Helpers/CliE2ETestHelpers.cs
index 072a525208d..f0c4c7b8f61 100644
--- a/tests/Aspire.Cli.EndToEnd.Tests/Helpers/CliE2ETestHelpers.cs
+++ b/tests/Aspire.Cli.EndToEnd.Tests/Helpers/CliE2ETestHelpers.cs
@@ -2,7 +2,9 @@
// The .NET Foundation licenses this file to you under the MIT license.
#pragma warning disable IDE0005 // Incorrectly flagged as unused due to types spread across namespaces
+using System.Runtime.CompilerServices;
using Aspire.Cli.Tests.Utils;
+using Hex1b;
using Hex1b.Automation;
#pragma warning restore IDE0005
using Xunit;
@@ -87,6 +89,27 @@ internal static string GetTestResultsRecordingPath(string testName)
return Path.Combine(recordingsDir, $"{testName}.cast");
}
+ ///
+ /// Creates a headless Hex1b terminal configured for E2E testing with asciinema recording.
+ /// Uses default dimensions of 160x48 unless overridden.
+ ///
+ /// The test name used for the recording file path. Defaults to the calling method name.
+ /// The terminal width in columns. Defaults to 160.
+ /// The terminal height in rows. Defaults to 48.
+ /// A configured instance. Caller is responsible for disposal.
+ internal static Hex1bTerminal CreateTestTerminal(int width = 160, int height = 48, [CallerMemberName] string testName = "")
+ {
+ var recordingPath = GetTestResultsRecordingPath(testName);
+
+ var builder = Hex1bTerminal.CreateBuilder()
+ .WithHeadless()
+ .WithDimensions(width, height)
+ .WithAsciinemaRecording(recordingPath)
+ .WithPtyProcess("/bin/bash", ["--norc"]);
+
+ return builder.Build();
+ }
+
internal static Hex1bTerminalInputSequenceBuilder PrepareEnvironment(
this Hex1bTerminalInputSequenceBuilder builder, TemporaryWorkspace workspace, SequenceCounter counter)
{
diff --git a/tests/Aspire.Cli.EndToEnd.Tests/JsReactTemplateTests.cs b/tests/Aspire.Cli.EndToEnd.Tests/JsReactTemplateTests.cs
index 978af50c2c4..f0c5eef3a52 100644
--- a/tests/Aspire.Cli.EndToEnd.Tests/JsReactTemplateTests.cs
+++ b/tests/Aspire.Cli.EndToEnd.Tests/JsReactTemplateTests.cs
@@ -3,7 +3,6 @@
using Aspire.Cli.EndToEnd.Tests.Helpers;
using Aspire.Cli.Tests.Utils;
-using Hex1b;
using Hex1b.Automation;
using Xunit;
@@ -23,15 +22,7 @@ public async Task CreateAndRunJsReactProject()
var prNumber = CliE2ETestHelpers.GetRequiredPrNumber();
var commitSha = CliE2ETestHelpers.GetRequiredCommitSha();
var isCI = CliE2ETestHelpers.IsRunningInCI;
- var recordingPath = CliE2ETestHelpers.GetTestResultsRecordingPath(nameof(CreateAndRunJsReactProject));
-
- var builder = Hex1bTerminal.CreateBuilder()
- .WithHeadless()
- .WithDimensions(160, 48)
- .WithAsciinemaRecording(recordingPath)
- .WithPtyProcess("/bin/bash", ["--norc"]);
-
- using var terminal = builder.Build();
+ using var terminal = CliE2ETestHelpers.CreateTestTerminal();
var pendingRun = terminal.RunAsync(TestContext.Current.CancellationToken);
diff --git a/tests/Aspire.Cli.EndToEnd.Tests/KubernetesPublishTests.cs b/tests/Aspire.Cli.EndToEnd.Tests/KubernetesPublishTests.cs
index 42b57f0ecb4..e39899f2b5d 100644
--- a/tests/Aspire.Cli.EndToEnd.Tests/KubernetesPublishTests.cs
+++ b/tests/Aspire.Cli.EndToEnd.Tests/KubernetesPublishTests.cs
@@ -3,7 +3,6 @@
using Aspire.Cli.EndToEnd.Tests.Helpers;
using Aspire.Cli.Tests.Utils;
-using Hex1b;
using Hex1b.Automation;
using Xunit;
@@ -34,20 +33,13 @@ public async Task CreateAndPublishToKubernetes()
var prNumber = CliE2ETestHelpers.GetRequiredPrNumber();
var commitSha = CliE2ETestHelpers.GetRequiredCommitSha();
var isCI = CliE2ETestHelpers.IsRunningInCI;
- var recordingPath = CliE2ETestHelpers.GetTestResultsRecordingPath(nameof(CreateAndPublishToKubernetes));
var clusterName = GenerateUniqueClusterName();
output.WriteLine($"Using KinD version: {KindVersion}");
output.WriteLine($"Using Helm version: {HelmVersion}");
output.WriteLine($"Using cluster name: {clusterName}");
- var builder = Hex1bTerminal.CreateBuilder()
- .WithHeadless()
- .WithDimensions(160, 48)
- .WithAsciinemaRecording(recordingPath)
- .WithPtyProcess("/bin/bash", ["--norc"]);
-
- using var terminal = builder.Build();
+ using var terminal = CliE2ETestHelpers.CreateTestTerminal();
var pendingRun = terminal.RunAsync(TestContext.Current.CancellationToken);
diff --git a/tests/Aspire.Cli.EndToEnd.Tests/LogsCommandTests.cs b/tests/Aspire.Cli.EndToEnd.Tests/LogsCommandTests.cs
index 30ffe3adabd..680fe95fd2b 100644
--- a/tests/Aspire.Cli.EndToEnd.Tests/LogsCommandTests.cs
+++ b/tests/Aspire.Cli.EndToEnd.Tests/LogsCommandTests.cs
@@ -3,7 +3,6 @@
using Aspire.Cli.EndToEnd.Tests.Helpers;
using Aspire.Cli.Tests.Utils;
-using Hex1b;
using Hex1b.Automation;
using Xunit;
@@ -23,15 +22,7 @@ public async Task LogsCommandShowsResourceLogs()
var prNumber = CliE2ETestHelpers.GetRequiredPrNumber();
var commitSha = CliE2ETestHelpers.GetRequiredCommitSha();
var isCI = CliE2ETestHelpers.IsRunningInCI;
- var recordingPath = CliE2ETestHelpers.GetTestResultsRecordingPath(nameof(LogsCommandShowsResourceLogs));
-
- var builder = Hex1bTerminal.CreateBuilder()
- .WithHeadless()
- .WithDimensions(160, 48)
- .WithAsciinemaRecording(recordingPath)
- .WithPtyProcess("/bin/bash", ["--norc"]);
-
- using var terminal = builder.Build();
+ using var terminal = CliE2ETestHelpers.CreateTestTerminal();
var pendingRun = terminal.RunAsync(TestContext.Current.CancellationToken);
diff --git a/tests/Aspire.Cli.EndToEnd.Tests/PsCommandTests.cs b/tests/Aspire.Cli.EndToEnd.Tests/PsCommandTests.cs
index 78a98c7d392..4d7e422e26f 100644
--- a/tests/Aspire.Cli.EndToEnd.Tests/PsCommandTests.cs
+++ b/tests/Aspire.Cli.EndToEnd.Tests/PsCommandTests.cs
@@ -3,7 +3,6 @@
using Aspire.Cli.EndToEnd.Tests.Helpers;
using Aspire.Cli.Tests.Utils;
-using Hex1b;
using Hex1b.Automation;
using Xunit;
@@ -23,15 +22,7 @@ public async Task PsCommandListsRunningAppHost()
var prNumber = CliE2ETestHelpers.GetRequiredPrNumber();
var commitSha = CliE2ETestHelpers.GetRequiredCommitSha();
var isCI = CliE2ETestHelpers.IsRunningInCI;
- var recordingPath = CliE2ETestHelpers.GetTestResultsRecordingPath(nameof(PsCommandListsRunningAppHost));
-
- var builder = Hex1bTerminal.CreateBuilder()
- .WithHeadless()
- .WithDimensions(160, 48)
- .WithAsciinemaRecording(recordingPath)
- .WithPtyProcess("/bin/bash", ["--norc"]);
-
- using var terminal = builder.Build();
+ using var terminal = CliE2ETestHelpers.CreateTestTerminal();
var pendingRun = terminal.RunAsync(TestContext.Current.CancellationToken);
diff --git a/tests/Aspire.Cli.EndToEnd.Tests/PythonReactTemplateTests.cs b/tests/Aspire.Cli.EndToEnd.Tests/PythonReactTemplateTests.cs
index 684bab355f8..683afa46241 100644
--- a/tests/Aspire.Cli.EndToEnd.Tests/PythonReactTemplateTests.cs
+++ b/tests/Aspire.Cli.EndToEnd.Tests/PythonReactTemplateTests.cs
@@ -3,7 +3,6 @@
using Aspire.Cli.EndToEnd.Tests.Helpers;
using Aspire.Cli.Tests.Utils;
-using Hex1b;
using Hex1b.Automation;
using Xunit;
@@ -23,15 +22,7 @@ public async Task CreateAndRunPythonReactProject()
var prNumber = CliE2ETestHelpers.GetRequiredPrNumber();
var commitSha = CliE2ETestHelpers.GetRequiredCommitSha();
var isCI = CliE2ETestHelpers.IsRunningInCI;
- var recordingPath = CliE2ETestHelpers.GetTestResultsRecordingPath(nameof(CreateAndRunPythonReactProject));
-
- var builder = Hex1bTerminal.CreateBuilder()
- .WithHeadless()
- .WithDimensions(160, 48)
- .WithAsciinemaRecording(recordingPath)
- .WithPtyProcess("/bin/bash", ["--norc"]);
-
- using var terminal = builder.Build();
+ using var terminal = CliE2ETestHelpers.CreateTestTerminal();
var pendingRun = terminal.RunAsync(TestContext.Current.CancellationToken);
diff --git a/tests/Aspire.Cli.EndToEnd.Tests/ResourcesCommandTests.cs b/tests/Aspire.Cli.EndToEnd.Tests/ResourcesCommandTests.cs
index 41edab5154e..1a257d051d6 100644
--- a/tests/Aspire.Cli.EndToEnd.Tests/ResourcesCommandTests.cs
+++ b/tests/Aspire.Cli.EndToEnd.Tests/ResourcesCommandTests.cs
@@ -3,7 +3,6 @@
using Aspire.Cli.EndToEnd.Tests.Helpers;
using Aspire.Cli.Tests.Utils;
-using Hex1b;
using Hex1b.Automation;
using Xunit;
@@ -23,15 +22,7 @@ public async Task ResourcesCommandShowsRunningResources()
var prNumber = CliE2ETestHelpers.GetRequiredPrNumber();
var commitSha = CliE2ETestHelpers.GetRequiredCommitSha();
var isCI = CliE2ETestHelpers.IsRunningInCI;
- var recordingPath = CliE2ETestHelpers.GetTestResultsRecordingPath(nameof(ResourcesCommandShowsRunningResources));
-
- var builder = Hex1bTerminal.CreateBuilder()
- .WithHeadless()
- .WithDimensions(160, 48)
- .WithAsciinemaRecording(recordingPath)
- .WithPtyProcess("/bin/bash", ["--norc"]);
-
- using var terminal = builder.Build();
+ using var terminal = CliE2ETestHelpers.CreateTestTerminal();
var pendingRun = terminal.RunAsync(TestContext.Current.CancellationToken);
diff --git a/tests/Aspire.Cli.EndToEnd.Tests/SmokeTests.cs b/tests/Aspire.Cli.EndToEnd.Tests/SmokeTests.cs
index e85f579a1c4..7903092841d 100644
--- a/tests/Aspire.Cli.EndToEnd.Tests/SmokeTests.cs
+++ b/tests/Aspire.Cli.EndToEnd.Tests/SmokeTests.cs
@@ -3,7 +3,6 @@
using Aspire.Cli.EndToEnd.Tests.Helpers;
using Aspire.Cli.Tests.Utils;
-using Hex1b;
using Hex1b.Automation;
using Xunit;
@@ -23,15 +22,7 @@ public async Task CreateAndRunAspireStarterProject()
var prNumber = CliE2ETestHelpers.GetRequiredPrNumber();
var commitSha = CliE2ETestHelpers.GetRequiredCommitSha();
var isCI = CliE2ETestHelpers.IsRunningInCI;
- var recordingPath = CliE2ETestHelpers.GetTestResultsRecordingPath(nameof(CreateAndRunAspireStarterProject));
-
- var builder = Hex1bTerminal.CreateBuilder()
- .WithHeadless()
- .WithDimensions(160, 48)
- .WithAsciinemaRecording(recordingPath)
- .WithPtyProcess("/bin/bash", ["--norc"]);
-
- using var terminal = builder.Build();
+ using var terminal = CliE2ETestHelpers.CreateTestTerminal();
var pendingRun = terminal.RunAsync(TestContext.Current.CancellationToken);
diff --git a/tests/Aspire.Cli.EndToEnd.Tests/StartStopTests.cs b/tests/Aspire.Cli.EndToEnd.Tests/StartStopTests.cs
index 371eab030c2..4c0702aec6e 100644
--- a/tests/Aspire.Cli.EndToEnd.Tests/StartStopTests.cs
+++ b/tests/Aspire.Cli.EndToEnd.Tests/StartStopTests.cs
@@ -3,7 +3,6 @@
using Aspire.Cli.EndToEnd.Tests.Helpers;
using Aspire.Cli.Tests.Utils;
-using Hex1b;
using Hex1b.Automation;
using Xunit;
@@ -23,15 +22,7 @@ public async Task CreateStartAndStopAspireProject()
var prNumber = CliE2ETestHelpers.GetRequiredPrNumber();
var commitSha = CliE2ETestHelpers.GetRequiredCommitSha();
var isCI = CliE2ETestHelpers.IsRunningInCI;
- var recordingPath = CliE2ETestHelpers.GetTestResultsRecordingPath(nameof(CreateStartAndStopAspireProject));
-
- var builder = Hex1bTerminal.CreateBuilder()
- .WithHeadless()
- .WithDimensions(160, 48)
- .WithAsciinemaRecording(recordingPath)
- .WithPtyProcess("/bin/bash", ["--norc"]);
-
- using var terminal = builder.Build();
+ using var terminal = CliE2ETestHelpers.CreateTestTerminal();
var pendingRun = terminal.RunAsync(TestContext.Current.CancellationToken);
diff --git a/tests/Aspire.Cli.EndToEnd.Tests/TypeScriptPolyglotTests.cs b/tests/Aspire.Cli.EndToEnd.Tests/TypeScriptPolyglotTests.cs
index 1a94f2b127d..57902e250c6 100644
--- a/tests/Aspire.Cli.EndToEnd.Tests/TypeScriptPolyglotTests.cs
+++ b/tests/Aspire.Cli.EndToEnd.Tests/TypeScriptPolyglotTests.cs
@@ -3,7 +3,6 @@
using Aspire.Cli.EndToEnd.Tests.Helpers;
using Aspire.Cli.Tests.Utils;
-using Hex1b;
using Hex1b.Automation;
using Xunit;
@@ -23,15 +22,7 @@ public async Task CreateTypeScriptAppHostWithViteApp()
var prNumber = CliE2ETestHelpers.GetRequiredPrNumber();
var commitSha = CliE2ETestHelpers.GetRequiredCommitSha();
var isCI = CliE2ETestHelpers.IsRunningInCI;
- var recordingPath = CliE2ETestHelpers.GetTestResultsRecordingPath(nameof(CreateTypeScriptAppHostWithViteApp));
-
- var builder = Hex1bTerminal.CreateBuilder()
- .WithHeadless()
- .WithDimensions(160, 48)
- .WithAsciinemaRecording(recordingPath)
- .WithPtyProcess("/bin/bash", ["--norc"]);
-
- using var terminal = builder.Build();
+ using var terminal = CliE2ETestHelpers.CreateTestTerminal();
var pendingRun = terminal.RunAsync(TestContext.Current.CancellationToken);