From b49dd9869e48145ef6b18b2c4e6e550fb1023ba3 Mon Sep 17 00:00:00 2001 From: Ryan Brandenburg Date: Fri, 31 Jan 2020 14:00:57 -0800 Subject: [PATCH] Include the ExitCode in the error message (#17663) Include the ExitCode in the error message --- .azure/pipelines/ci.yml | 1 - .../src/Commands/BaseCommand.cs | 17 ++- .../test/OpenApiAddFileTests.cs | 64 ++++----- .../test/OpenApiAddProjectTests.cs | 126 ++++++++---------- .../test/OpenApiAddURLTests.cs | 51 +++---- .../test/OpenApiRefreshTests.cs | 6 +- .../test/OpenApiRemoveTests.cs | 27 ++-- .../test/OpenApiTestBase.cs | 9 +- 8 files changed, 128 insertions(+), 173 deletions(-) diff --git a/.azure/pipelines/ci.yml b/.azure/pipelines/ci.yml index 19a90ec662..dee7ba6985 100644 --- a/.azure/pipelines/ci.yml +++ b/.azure/pipelines/ci.yml @@ -591,7 +591,6 @@ stages: - template: jobs/default-build.yml parameters: - condition: ne(variables['Build.Reason'], 'PullRequest') jobName: Helix_x64_daily jobDisplayName: 'Tests: Helix x64 Daily' agentOs: Windows diff --git a/src/Tools/Microsoft.dotnet-openapi/src/Commands/BaseCommand.cs b/src/Tools/Microsoft.dotnet-openapi/src/Commands/BaseCommand.cs index 88cc458a1f..1edc21c413 100644 --- a/src/Tools/Microsoft.dotnet-openapi/src/Commands/BaseCommand.cs +++ b/src/Tools/Microsoft.dotnet-openapi/src/Commands/BaseCommand.cs @@ -240,12 +240,19 @@ namespace Microsoft.DotNet.OpenApi.Commands if (process.ExitCode != 0) { - var output = await process.StandardOutput.ReadToEndAsync(); - var error = await process.StandardError.ReadToEndAsync(); - await Out.WriteAsync(output); - await Error.WriteAsync(error); + using var csprojStream = projectFile.OpenRead(); + using var csprojReader = new StreamReader(csprojStream); + var csprojContent = await csprojReader.ReadToEndAsync(); + // We suspect that sometimes dotnet add package is giving a non-zero exit code when it has actually succeeded. + if (!csprojContent.Contains($"", content); - } + using var csprojStream = csproj.OpenRead(); + using var reader = new StreamReader(csprojStream); + var content = await reader.ReadToEndAsync(); + Assert.Contains("", content); } [Fact] @@ -166,18 +154,15 @@ namespace Microsoft.DotNet.OpenApi.Add.Tests var app = GetApplication(); var run = app.Execute(new[] { "add", "file", nswagJsonFile }); - Assert.True(string.IsNullOrEmpty(_error.ToString()), $"Threw error: {_error.ToString()}"); - Assert.Equal(0, run); + AssertNoErrors(run); // csproj contents var csproj = new FileInfo(project.Project.Path); - using (var csprojStream = csproj.OpenRead()) - using (var reader = new StreamReader(csprojStream)) - { - var content = await reader.ReadToEndAsync(); - Assert.Contains("