private CommandResult RunProcess(string executable, string args, StreamForwarder stdOut, StreamForwarder stdErr) { var psi = new ProcessStartInfo { FileName = executable, Arguments = args, RedirectStandardError = true, RedirectStandardOutput = true }; var process = new Process { StartInfo = psi }; process.EnableRaisingEvents = true; process.Start(); var threadOut = stdOut.BeginRead(process.StandardOutput); var threadErr = stdErr.BeginRead(process.StandardError); process.WaitForExit(); threadOut.Join(); threadErr.Join(); var result = new CommandResult( process.StartInfo, process.ExitCode, stdOut.CapturedOutput, stdErr.CapturedOutput); return result; }
static GivenThatTheUserIsRunningDotNetForTheFirstTime() { var testDirectory = TestAssetsManager.CreateTestDirectory("Dotnet_first_time_experience_tests"); var testNugetCache = Path.Combine(testDirectory.Path, "nuget_cache"); var command = new DotnetCommand() .WithWorkingDirectory(testDirectory.Path); command.Environment["NUGET_PACKAGES"] = testNugetCache; command.Environment["DOTNET_SKIP_FIRST_TIME_EXPERIENCE"] = ""; _firstDotnetNonVerbUseCommandResult = command.ExecuteWithCapturedOutput("--info"); _firstDotnetVerbUseCommandResult = command.ExecuteWithCapturedOutput("new"); _nugetCacheFolder = new DirectoryInfo(testNugetCache); }
private Task<CommandResult> RunProcessAsync(string executable, string args, StreamForwarder stdOut, StreamForwarder stdErr) { CurrentProcess = StartProcess(executable, args); var taskOut = stdOut.BeginRead(CurrentProcess.StandardOutput); var taskErr = stdErr.BeginRead(CurrentProcess.StandardError); var tcs = new TaskCompletionSource<CommandResult>(); CurrentProcess.Exited += (sender, arg) => { Task.WaitAll(taskOut, taskErr); var result = new CommandResult( CurrentProcess.StartInfo, CurrentProcess.ExitCode, stdOut.CapturedOutput, stdErr.CapturedOutput); tcs.SetResult(result); }; return tcs.Task; }
private CommandResult RunProcess(string executable, string args, StreamForwarder stdOut, StreamForwarder stdErr) { CurrentProcess = StartProcess(executable, args); var taskOut = stdOut.BeginRead(CurrentProcess.StandardOutput); var taskErr = stdErr.BeginRead(CurrentProcess.StandardError); CurrentProcess.WaitForExit(); Task.WaitAll(taskOut, taskErr); var result = new CommandResult( CurrentProcess.StartInfo, CurrentProcess.ExitCode, stdOut.CapturedOutput, stdErr.CapturedOutput); return result; }
protected static void AssertProjectSkipped(string skippedProject, CommandResult buildResult) { Assert.Contains($"Project {skippedProject} (DNXCore,Version=v5.0) was previously compiled. Skipping compilation.", buildResult.StdOut, StringComparison.OrdinalIgnoreCase); }
protected static void AssertProjectCompiled(string rebuiltProject, CommandResult buildResult) { Assert.Contains($"Project {rebuiltProject} (DNXCore,Version=v5.0) will be compiled", buildResult.StdOut, StringComparison.OrdinalIgnoreCase); }
private CommandResult RunProcess(string executable, string args, StreamForwarder stdOut, StreamForwarder stdErr) { var psi = new ProcessStartInfo { FileName = executable, Arguments = args, RedirectStandardError = true, RedirectStandardOutput = true }; foreach (var item in Environment) { psi.Environment[item.Key] = item.Value; } if (!string.IsNullOrWhiteSpace(WorkingDirectory)) { psi.WorkingDirectory = WorkingDirectory; Log($"Working directory: {WorkingDirectory}"); } var process = new Process { StartInfo = psi, EnableRaisingEvents = true }; using (process) { process.Start(); var threadOut = stdOut.BeginRead(process.StandardOutput); var threadErr = stdErr.BeginRead(process.StandardError); process.WaitForExit(); Task.WaitAll(threadOut, threadErr); var result = new CommandResult( process.StartInfo, process.ExitCode, stdOut.CapturedOutput, stdErr.CapturedOutput); return result; } }
public CommandResultAssertions(CommandResult commandResult) { _commandResult = commandResult; }
public static CommandResult Fail(CommandResult result) { Assert.NotEqual(0, result.ExitCode); return result; }
public static CommandResult Pass(CommandResult result) { Assert.Equal(0, result.ExitCode); return result; }
private void ValidateRuntimeLibrariesFullClr(CommandResult result, string appname) { // entry assembly result.Should().HaveStdOutContaining($"Runtime {appname}:{appname}"); // project dependency result.Should().HaveStdOutContaining("Runtime DependencyContextValidator:DependencyContextValidator"); }
private void ValidateCompilationLibraries(CommandResult result, string appname) { // entry assembly result.Should().HaveStdOutContaining($"Compilation {appname}:{appname}.dll"); // project dependency result.Should().HaveStdOutContaining("Compilation DependencyContextValidator:DependencyContextValidator.dll"); // system assembly result.Should().HaveStdOutContaining("Compilation System.Linq:System.Linq.dll"); }
protected static void AssertProjectSkipped(string skippedProject, CommandResult buildResult) { Assert.Contains($"Project {skippedProject} was previoulsy compiled. Skipping compilation.", buildResult.StdOut); }