public async Task RunAsync_Cancellation_Test() { // Arrange using var console = new VirtualConsole(); var application = new CliApplicationBuilder() .AddCommand(typeof(CancellableCommand)) .UseConsole(console) .Build(); var commandLineArguments = new[] { "cancel" }; var environmentVariables = new Dictionary <string, string>(); // Act console.CancelAfter(TimeSpan.FromSeconds(0.2)); var exitCode = await application.RunAsync(commandLineArguments, environmentVariables); var stdOut = console.ReadOutputString().Trim(); var stdErr = console.ReadErrorString().Trim(); // Assert exitCode.Should().NotBe(0); stdOut.Should().BeNullOrWhiteSpace(); stdErr.Should().NotBeNullOrWhiteSpace(); Console.WriteLine(stdErr); }