Merge pull request #1439 from dotnet/pakrym/pack-output
Fix pack output location
This commit is contained in:
		
				commit
				
					
						8a94e66384
					
				
			
		
					 7 changed files with 166 additions and 1 deletions
				
			
		| 
						 | 
					@ -0,0 +1,24 @@
 | 
				
			||||||
 | 
					// Copyright (c) .NET Foundation and contributors. All rights reserved.
 | 
				
			||||||
 | 
					// Licensed under the MIT license. See LICENSE file in the project root for full license information.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					using System;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace TestLibrary
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    public static class Helper
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        /// <summary>
 | 
				
			||||||
 | 
					        /// Gets the message from the helper. This comment is here to help test XML documentation file generation, please do not remove it.
 | 
				
			||||||
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        /// <returns>A message</returns>
 | 
				
			||||||
 | 
					        public static string GetMessage()
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            return "This string came from the test library!";
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        public static void SayHi()
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            Console.WriteLine("Hello there!");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,19 @@
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    "version": "1.0.0-*",
 | 
				
			||||||
 | 
					    "compilationOptions": {
 | 
				
			||||||
 | 
					        "nowarn": [ "CS1591" ],
 | 
				
			||||||
 | 
					        "xmlDoc": true,
 | 
				
			||||||
 | 
					        "additionalArguments": [ "-highentropyva+" ]
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "dependencies": {
 | 
				
			||||||
 | 
					        "NETStandard.Library": "1.0.0-rc2-23811"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "configurations": {
 | 
				
			||||||
 | 
					        "Test": {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "frameworks": {
 | 
				
			||||||
 | 
					        "dnxcore50": { }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -26,6 +26,7 @@ namespace Microsoft.DotNet.Cli.Build
 | 
				
			||||||
            "dotnet-compile.Tests",
 | 
					            "dotnet-compile.Tests",
 | 
				
			||||||
            "dotnet-compile.UnitTests",
 | 
					            "dotnet-compile.UnitTests",
 | 
				
			||||||
            "dotnet-build.Tests",
 | 
					            "dotnet-build.Tests",
 | 
				
			||||||
 | 
					            "dotnet-pack.Tests",
 | 
				
			||||||
            "Microsoft.DotNet.Cli.Utils.Tests",
 | 
					            "Microsoft.DotNet.Cli.Utils.Tests",
 | 
				
			||||||
            "Microsoft.DotNet.Compiler.Common.Tests",
 | 
					            "Microsoft.DotNet.Compiler.Common.Tests",
 | 
				
			||||||
            "ArgumentForwardingTests"
 | 
					            "ArgumentForwardingTests"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -36,7 +36,8 @@ namespace Microsoft.DotNet.Tools.Pack
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                var outputPath = Path.Combine(
 | 
					                var outputPath = Path.Combine(
 | 
				
			||||||
                    _project.ProjectDirectory,
 | 
					                    _project.ProjectDirectory,
 | 
				
			||||||
                    Constants.BinDirectoryName);
 | 
					                    Constants.BinDirectoryName,
 | 
				
			||||||
 | 
					                    _configuration);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                return outputPath;
 | 
					                return outputPath;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										74
									
								
								test/dotnet-pack.Tests/PackTests.cs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										74
									
								
								test/dotnet-pack.Tests/PackTests.cs
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,74 @@
 | 
				
			||||||
 | 
					// Copyright (c) .NET Foundation and contributors. All rights reserved.
 | 
				
			||||||
 | 
					// Licensed under the MIT license. See LICENSE file in the project root for full license information.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					using System;
 | 
				
			||||||
 | 
					using System.IO;
 | 
				
			||||||
 | 
					using Microsoft.DotNet.Tools.Test.Utilities;
 | 
				
			||||||
 | 
					using Xunit;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace Microsoft.DotNet.Tools.Compiler.Tests
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    public class PackTests : TestBase
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        private readonly string _testProjectsRoot;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        public PackTests()
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            _testProjectsRoot = Path.Combine(AppContext.BaseDirectory, "TestAssets", "TestProjects");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        [Fact]
 | 
				
			||||||
 | 
					        public void OutputsPackagesToConfigurationSubdirWhenOutputParameterIsNotPassed()
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            var root = Temp.CreateDirectory();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            var testLibDir = root.CreateDirectory("TestLibrary");
 | 
				
			||||||
 | 
					            var sourceTestLibDir = Path.Combine(_testProjectsRoot, "TestLibraryWithConfiguration");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            CopyProjectToTempDir(sourceTestLibDir, testLibDir);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            var testProject = GetProjectPath(testLibDir);
 | 
				
			||||||
 | 
					            var buildCommand = new PackCommand(testProject, configuration: "Test");
 | 
				
			||||||
 | 
					            var result = buildCommand.Execute();
 | 
				
			||||||
 | 
					            result.Should().Pass();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            var outputDir = new DirectoryInfo(Path.Combine(testLibDir.Path, "bin", "Test"));
 | 
				
			||||||
 | 
					            outputDir.Should().Exist();
 | 
				
			||||||
 | 
					            outputDir.Should().HaveFiles(new [] { "TestLibrary.1.0.0.nupkg" , "TestLibrary.1.0.0.symbols.nupkg" });
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        [Fact]
 | 
				
			||||||
 | 
					        public void OutputsPackagesFlatIntoOutputDirWhenOutputParameterIsPassed()
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            var root = Temp.CreateDirectory();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            var testLibDir = root.CreateDirectory("TestLibrary");
 | 
				
			||||||
 | 
					            var sourceTestLibDir = Path.Combine(_testProjectsRoot, "TestLibraryWithConfiguration");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            CopyProjectToTempDir(sourceTestLibDir, testLibDir);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            var outputDir = new DirectoryInfo(Path.Combine(testLibDir.Path, "bin2"));
 | 
				
			||||||
 | 
					            var testProject = GetProjectPath(testLibDir);
 | 
				
			||||||
 | 
					            var buildCommand = new PackCommand(testProject, output: outputDir.FullName);
 | 
				
			||||||
 | 
					            var result = buildCommand.Execute();
 | 
				
			||||||
 | 
					            result.Should().Pass();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            outputDir.Should().Exist();
 | 
				
			||||||
 | 
					            outputDir.Should().HaveFiles(new[] { "TestLibrary.1.0.0.nupkg", "TestLibrary.1.0.0.symbols.nupkg" });
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        private void CopyProjectToTempDir(string projectDir, TempDirectory tempDir)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            // copy all the files to temp dir
 | 
				
			||||||
 | 
					            foreach (var file in Directory.EnumerateFiles(projectDir))
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                tempDir.CopyFile(file);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        private string GetProjectPath(TempDirectory projectDir)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            return Path.Combine(projectDir.Path, "project.json");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										19
									
								
								test/dotnet-pack.Tests/dotnet-pack.Tests.xproj
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								test/dotnet-pack.Tests/dotnet-pack.Tests.xproj
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,19 @@
 | 
				
			||||||
 | 
					<?xml version="1.0" encoding="utf-8"?>
 | 
				
			||||||
 | 
					<Project ToolsVersion="14.0.24720" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | 
				
			||||||
 | 
					  <PropertyGroup>
 | 
				
			||||||
 | 
					    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">14.0.24720</VisualStudioVersion>
 | 
				
			||||||
 | 
					    <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
 | 
				
			||||||
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					  <Import Project="$(VSToolsPath)\DNX\Microsoft.DNX.Props" Condition="'$(VSToolsPath)' != ''" />
 | 
				
			||||||
 | 
					  <PropertyGroup Label="Globals">
 | 
				
			||||||
 | 
					    <ProjectGuid>5fda6d37-3a3e-4333-ba5c-f0b28be316f4</ProjectGuid>
 | 
				
			||||||
 | 
					    <RootNamespace>dotnet-pack.Tests</RootNamespace>
 | 
				
			||||||
 | 
					    <BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'=='' ">..\..\artifacts\obj\$(MSBuildProjectName)</BaseIntermediateOutputPath>
 | 
				
			||||||
 | 
					    <OutputPath Condition="'$(OutputPath)'=='' ">..\..\artifacts\bin\$(MSBuildProjectName)\</OutputPath>
 | 
				
			||||||
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  <PropertyGroup>
 | 
				
			||||||
 | 
					    <SchemaVersion>2.0</SchemaVersion>
 | 
				
			||||||
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					  <Import Project="$(VSToolsPath)\DNX\Microsoft.DNX.targets" Condition="'$(VSToolsPath)' != ''" />
 | 
				
			||||||
 | 
					</Project>
 | 
				
			||||||
							
								
								
									
										27
									
								
								test/dotnet-pack.Tests/project.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								test/dotnet-pack.Tests/project.json
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,27 @@
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  "version": "1.0.0-*",
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  "dependencies": {
 | 
				
			||||||
 | 
					    "NETStandard.Library": "1.0.0-rc2-23811",
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    "Microsoft.DotNet.Tools.Tests.Utilities": { "target": "project" },
 | 
				
			||||||
 | 
					    "Microsoft.DotNet.Cli.Utils": {
 | 
				
			||||||
 | 
					      "target": "project"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    "xunit": "2.1.0",
 | 
				
			||||||
 | 
					    "dotnet-test-xunit": "1.0.0-dev-48273-16"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  "frameworks": {
 | 
				
			||||||
 | 
					    "dnxcore50": {
 | 
				
			||||||
 | 
					      "imports": "portable-net451+win8"
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  "content": [
 | 
				
			||||||
 | 
					    "../../TestAssets/TestProjects/TestLibraryWithConfiguration/*"
 | 
				
			||||||
 | 
					  ],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  "testRunner": "xunit"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Reference in a new issue