From 905db127a695131849f21a55a33e5efedede495d Mon Sep 17 00:00:00 2001 From: jonsequitur Date: Wed, 1 Feb 2017 14:12:34 -0800 Subject: [PATCH] use missing package test to verify correct package feed parsing --- ...aryWithUnresolvablePackageReference.csproj | 11 ++++++++ .../dotnet-msbuild/MSBuildForwardingApp.cs | 3 +-- .../GivenDotnetMSBuildBuildsProjects.cs | 27 ++++++++++++++----- 3 files changed, 33 insertions(+), 8 deletions(-) create mode 100755 TestAssets/TestProjects/LibraryWithUnresolvablePackageReference/LibraryWithUnresolvablePackageReference.csproj diff --git a/TestAssets/TestProjects/LibraryWithUnresolvablePackageReference/LibraryWithUnresolvablePackageReference.csproj b/TestAssets/TestProjects/LibraryWithUnresolvablePackageReference/LibraryWithUnresolvablePackageReference.csproj new file mode 100755 index 000000000..66c164859 --- /dev/null +++ b/TestAssets/TestProjects/LibraryWithUnresolvablePackageReference/LibraryWithUnresolvablePackageReference.csproj @@ -0,0 +1,11 @@ + + + + netstandard1.5 + + + + + + + diff --git a/src/dotnet/commands/dotnet-msbuild/MSBuildForwardingApp.cs b/src/dotnet/commands/dotnet-msbuild/MSBuildForwardingApp.cs index 7f9120791..6b2b0f47f 100644 --- a/src/dotnet/commands/dotnet-msbuild/MSBuildForwardingApp.cs +++ b/src/dotnet/commands/dotnet-msbuild/MSBuildForwardingApp.cs @@ -42,7 +42,6 @@ namespace Microsoft.DotNet.Tools.MSBuild Type loggerType = typeof(MSBuildLogger); argsToForward = argsToForward - .Select(Escape) .Concat(new[] { $"/Logger:{loggerType.FullName},{loggerType.GetTypeInfo().Assembly.Location}" @@ -56,7 +55,7 @@ namespace Microsoft.DotNet.Tools.MSBuild _forwardingApp = new ForwardingApp( GetMSBuildExePath(), - _msbuildRequiredParameters.Concat(argsToForward), + _msbuildRequiredParameters.Concat(argsToForward.Select(Escape)), environmentVariables: _msbuildRequiredEnvironmentVariables); } diff --git a/test/dotnet-msbuild.Tests/GivenDotnetMSBuildBuildsProjects.cs b/test/dotnet-msbuild.Tests/GivenDotnetMSBuildBuildsProjects.cs index 2c00d40c9..117f34bae 100644 --- a/test/dotnet-msbuild.Tests/GivenDotnetMSBuildBuildsProjects.cs +++ b/test/dotnet-msbuild.Tests/GivenDotnetMSBuildBuildsProjects.cs @@ -12,12 +12,20 @@ using Microsoft.DotNet.Tools.MSBuild; using Microsoft.DotNet.Tools.Test.Utilities; using NuGet.Protocol; using Xunit; +using Xunit.Abstractions; using MSBuildCommand = Microsoft.DotNet.Tools.Test.Utilities.MSBuildCommand; namespace Microsoft.DotNet.Cli.MSBuild.Tests { public class GivenDotnetMSBuildBuildsProjects : TestBase { + private readonly ITestOutputHelper _output; + + public GivenDotnetMSBuildBuildsProjects(ITestOutputHelper output) + { + _output = output; + } + [Fact] public void ItRunsSpecifiedTargetsWithPropertiesCorrectly() { @@ -86,19 +94,26 @@ namespace Microsoft.DotNet.Cli.MSBuild.Tests } // this is a workaround for https://github.com/Microsoft/msbuild/issues/1622 - var testInstance = TestAssets.Get("MSBuildTestApp") + var testInstance = TestAssets.Get("LibraryWithUnresolvablePackageReference") .CreateInstance() - .WithSourceFiles() - .WithRestoreFiles(); + .WithSourceFiles(); var root = testInstance.Root; var somePathThatExists = "/usr/local/bin"; var result = new DotnetCommand() .WithWorkingDirectory(root) - .Execute($"msbuild /p:RestoreSources={somePathThatExists};https://api.nuget.org/v3/index.json /t:restore MSBuildTestApp.csproj"); - - result.Should().Pass(); + .Execute($"msbuild /p:RestoreSources={somePathThatExists};https://api.nuget.org/v3/index.json /t:restore LibraryWithUnresolvablePackageReference.csproj"); + + _output.WriteLine($"[STDOUT]\n{result.StdOut}\n[STDERR]\n{result.StdErr}"); + + result.Should().Fail(); + + result.StdOut.Should() + .ContainVisuallySameFragment( +@"Feeds used: + /usr/local/bin + https://api.nuget.org/v3/index.json"); } [Fact]