From 86f8115ee753e481fdf850e6f61bd6c9fe04cee6 Mon Sep 17 00:00:00 2001 From: Livar Cunha Date: Wed, 17 Aug 2016 14:09:36 -0700 Subject: [PATCH 01/18] Updating the System.Reflection.Metadata version and changing the order of platform assemblies passed to crossgen. --- build/Microsoft.DotNet.Cli.Compile.targets | 4 ++-- src/Microsoft.DotNet.ProjectModel/project.json | 2 +- src/Microsoft.Extensions.Testing.Abstractions/project.json | 3 ++- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/build/Microsoft.DotNet.Cli.Compile.targets b/build/Microsoft.DotNet.Cli.Compile.targets index 75bce5b58..550a2dce0 100644 --- a/build/Microsoft.DotNet.Cli.Compile.targets +++ b/build/Microsoft.DotNet.Cli.Compile.targets @@ -197,8 +197,8 @@ CrossgenPath="$(CrossgenPath)" ReadyToRun="True" PlatformAssemblyPaths="@(PlatformAssemblies); - $(SharedFrameworkNameVersionPath); - @(CompileStageSdkDirectories)" /> + @(CompileStageSdkDirectories); + $(SharedFrameworkNameVersionPath)" /> Date: Thu, 18 Aug 2016 11:53:18 -0700 Subject: [PATCH 02/18] Updating System.Reflection.Metadata to a newer version in some projects that I forgot to do so before. --- TestAssets/TestProjects/TestAppWithResourceDeps/project.json | 2 +- build_projects/dotnet-cli-build/project.json | 2 +- build_projects/shared-build-targets-utils/project.json | 2 +- src/Microsoft.DotNet.ProjectModel/project.json | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/TestAssets/TestProjects/TestAppWithResourceDeps/project.json b/TestAssets/TestProjects/TestAppWithResourceDeps/project.json index 4cfc1d190..02f60cb66 100644 --- a/TestAssets/TestProjects/TestAppWithResourceDeps/project.json +++ b/TestAssets/TestProjects/TestAppWithResourceDeps/project.json @@ -7,7 +7,7 @@ "Microsoft.NETCore.App": "1.0.0", "Microsoft.CSharp": "4.0.1", "System.Dynamic.Runtime": "4.0.11", - "System.Reflection.Metadata": "1.3.0", + "System.Reflection.Metadata": "1.4.1-beta-24410-02", "System.Runtime.Serialization.Primitives": "4.1.1", "System.Xml.XmlSerializer": "4.0.11", "WindowsAzure.Storage": "6.2.2-preview" diff --git a/build_projects/dotnet-cli-build/project.json b/build_projects/dotnet-cli-build/project.json index 644b04f13..5f85f156e 100644 --- a/build_projects/dotnet-cli-build/project.json +++ b/build_projects/dotnet-cli-build/project.json @@ -16,7 +16,7 @@ "Microsoft.NETCore.Runtime.CoreCLR": "1.0.2", "Microsoft.CSharp": "4.0.1", "System.Dynamic.Runtime": "4.0.11", - "System.Reflection.Metadata": "1.3.0", + "System.Reflection.Metadata": "1.4.1-beta-24410-02", "System.Runtime.Serialization.Primitives": "4.1.1", "System.Xml.XmlSerializer": "4.0.11", "WindowsAzure.Storage": "6.2.2-preview", diff --git a/build_projects/shared-build-targets-utils/project.json b/build_projects/shared-build-targets-utils/project.json index c9d4dcb25..66392ed1c 100644 --- a/build_projects/shared-build-targets-utils/project.json +++ b/build_projects/shared-build-targets-utils/project.json @@ -5,7 +5,7 @@ "NETStandard.Library": "1.6.0", "Microsoft.CSharp": "4.0.1", "System.Dynamic.Runtime": "4.0.11", - "System.Reflection.Metadata": "1.3.0", + "System.Reflection.Metadata": "1.4.1-beta-24410-02", "System.Runtime.Serialization.Primitives": "4.1.1", "System.Xml.XmlSerializer": "4.0.11", "WindowsAzure.Storage": "6.2.2-preview", diff --git a/src/Microsoft.DotNet.ProjectModel/project.json b/src/Microsoft.DotNet.ProjectModel/project.json index 95436c6dc..f1b014783 100644 --- a/src/Microsoft.DotNet.ProjectModel/project.json +++ b/src/Microsoft.DotNet.ProjectModel/project.json @@ -11,7 +11,7 @@ "NuGet.Configuration": "3.6.0-beta.1.msbuild.1", "NuGet.Packaging": "3.6.0-beta.1.msbuild.1", "NuGet.RuntimeModel": "3.6.0-beta.1.msbuild.1", - "System.Reflection.Metadata": "1.3.0" + "System.Reflection.Metadata": "1.4.1-beta-24410-02" }, "frameworks": { "net451": { From 8c9e1fca90255c1bf5379ac10d8ac3e1c0922489 Mon Sep 17 00:00:00 2001 From: Piotr Puszkiewicz Date: Tue, 9 Aug 2016 20:04:32 -0700 Subject: [PATCH 03/18] TestAssetManager in CompilerTests --- test/dotnet-compile.Tests/CompilerTests.cs | 57 ++++++++++------------ 1 file changed, 25 insertions(+), 32 deletions(-) diff --git a/test/dotnet-compile.Tests/CompilerTests.cs b/test/dotnet-compile.Tests/CompilerTests.cs index c2e817dc5..6e1def720 100644 --- a/test/dotnet-compile.Tests/CompilerTests.cs +++ b/test/dotnet-compile.Tests/CompilerTests.cs @@ -13,28 +13,16 @@ namespace Microsoft.DotNet.Tools.Compiler.Tests { public class CompilerTests : TestBase { - private readonly string _testProjectsRoot; - - public CompilerTests() - { - _testProjectsRoot = Path.Combine(AppContext.BaseDirectory, "TestAssets", "TestProjects"); - } - [Fact] public void XmlDocumentationFileIsGenerated() { - // create unique directories in the 'temp' folder - var root = Temp.CreateDirectory(); - root.CopyFile(Path.Combine(_testProjectsRoot, "global.json")); + var testInstance = TestAssetsManager.CreateTestInstance("TestAppWithLibrary"); - var testLibDir = root.CreateDirectory("TestLibrary"); - var sourceTestLibDir = Path.Combine(_testProjectsRoot, "TestAppWithLibrary", "TestLibrary"); - - CopyProjectToTempDir(sourceTestLibDir, testLibDir); + var testLibDir = Path.Combine(testInstance.TestRoot, "TestLibrary"); // run compile - var outputDir = Path.Combine(testLibDir.Path, "bin"); - var testProject = GetProjectPath(testLibDir); + var outputDir = Path.Combine(testLibDir, "bin"); + var testProject = Path.Combine(testLibDir, "project.json"); var buildCommand = new BuildCommand(testProject, output: outputDir, framework: DefaultLibraryFramework); var result = buildCommand.ExecuteWithCapturedOutput(); result.Should().Pass(); @@ -49,16 +37,13 @@ namespace Microsoft.DotNet.Tools.Compiler.Tests [Fact] public void SatelliteAssemblyIsGeneratedByDotnetBuild() { - // create unique directories in the 'temp' folder - var root = Temp.CreateDirectory(); - var testLibDir = root.CreateDirectory("TestProjectWithCultureSpecificResource"); - var sourceTestLibDir = Path.Combine(_testProjectsRoot, "TestProjectWithCultureSpecificResource"); + var testInstance = TestAssetsManager.CreateTestInstance("TestProjectWithCultureSpecificResource"); - CopyProjectToTempDir(sourceTestLibDir, testLibDir); + var testLibDir = testInstance.TestRoot; // run compile on a project with resources - var outputDir = Path.Combine(testLibDir.Path, "bin"); - var testProject = GetProjectPath(testLibDir); + var outputDir = Path.Combine(testLibDir, "bin"); + var testProject = Path.Combine(testLibDir, "project.json"); var buildCmd = new BuildCommand(testProject, output: outputDir, framework: DefaultFramework); var result = buildCmd.ExecuteWithCapturedOutput(); result.Should().Pass(); @@ -75,15 +60,13 @@ namespace Microsoft.DotNet.Tools.Compiler.Tests [Fact] public void LibraryWithAnalyzer() { - var root = Temp.CreateDirectory(); - var testLibDir = root.CreateDirectory("TestLibraryWithAnalyzer"); - var sourceTestLibDir = Path.Combine(_testProjectsRoot, "TestLibraryWithAnalyzer"); + var testInstance = TestAssetsManager.CreateTestInstance("TestLibraryWithAnalyzer"); - CopyProjectToTempDir(sourceTestLibDir, testLibDir); + var testLibDir = testInstance.TestRoot; // run compile - var outputDir = Path.Combine(testLibDir.Path, "bin"); - var testProject = GetProjectPath(testLibDir); + var outputDir = Path.Combine(testLibDir, "bin"); + var testProject = Path.Combine(testLibDir, "project.json"); var buildCmd = new BuildCommand(testProject, output: outputDir, framework: DefaultLibraryFramework); var result = buildCmd.ExecuteWithCapturedOutput(); result.Should().Pass(); @@ -97,11 +80,21 @@ namespace Microsoft.DotNet.Tools.Compiler.Tests var root = Temp.CreateDirectory(); var spaceBufferDirectory = root.CreateDirectory("space directory"); - var testAppDir = spaceBufferDirectory.CreateDirectory("TestAppCompilationContext"); - CopyProjectToTempDir(Path.Combine(_testProjectsRoot, "TestAppCompilationContext"), testAppDir); + var testInstance = TestAssetsManager.CreateTestInstance("TestAppCompilationContext"); + + var testAppDir = testInstance.TestRoot; + + Directory.Move(testInstance.TestRoot, spaceBufferDirectory.Path); + + Directory.Move(spaceBufferDirectory.Path, testInstance.TestRoot); + + var testProjectDir = Path.Combine( + Directory.GetParent(testInstance.TestRoot).FullName, + "space directory", + "TestAppCompilationContext", + "TestApp"); - var testProjectDir = Path.Combine(_testProjectsRoot, "TestAppCompilationContext", "TestApp"); var testProject = Path.Combine(testProjectDir, "project.json"); var buildCommand = new BuildCommand(testProject); From 8fbc227422de1b6607ab1a59085bd136d8fad54d Mon Sep 17 00:00:00 2001 From: Piotr Puszkiewicz Date: Tue, 9 Aug 2016 23:00:26 -0700 Subject: [PATCH 04/18] Move dotnet-pack.Tests to TestAssetsManager --- test/dotnet-pack.Tests/PackTests.cs | 65 +++++++++++++---------------- 1 file changed, 28 insertions(+), 37 deletions(-) diff --git a/test/dotnet-pack.Tests/PackTests.cs b/test/dotnet-pack.Tests/PackTests.cs index 1d9f7500a..e8db25e99 100644 --- a/test/dotnet-pack.Tests/PackTests.cs +++ b/test/dotnet-pack.Tests/PackTests.cs @@ -17,49 +17,41 @@ namespace Microsoft.DotNet.Tools.Compiler.Tests { private readonly string _testProjectsRoot; - public PackTests() - { - _testProjectsRoot = Path.Combine(AppContext.BaseDirectory, "TestAssets", "TestProjects"); - } - [Fact] public void OutputsPackagesToConfigurationSubdirWhenOutputParameterIsNotPassed() { - var root = Temp.CreateDirectory(); + var testInstance = TestAssetsManager + .CreateTestInstance("TestLibraryWithConfiguration") + .WithBuildArtifacts() + .WithLockFiles(); - var testLibDir = root.CreateDirectory("TestLibrary"); - var sourceTestLibDir = Path.Combine(_testProjectsRoot, "TestLibraryWithConfiguration"); - - CopyProjectToTempDir(sourceTestLibDir, testLibDir); - - var testProject = GetProjectPath(testLibDir); + var testProject = Path.Combine(testInstance.Path, "project.json"); var packCommand = new PackCommand(testProject, configuration: "Test"); var result = packCommand.Execute(); result.Should().Pass(); - var outputDir = new DirectoryInfo(Path.Combine(testLibDir.Path, "bin", "Test")); + var outputDir = new DirectoryInfo(Path.Combine(testInstance.Path, "bin", "Test")); outputDir.Should().Exist(); - outputDir.Should().HaveFiles(new [] { "TestLibrary.1.0.0.nupkg" , "TestLibrary.1.0.0.symbols.nupkg" }); + outputDir.Should().HaveFiles(new [] { "TestLibraryWithConfiguration.1.0.0.nupkg" , "TestLibraryWithConfiguration.1.0.0.symbols.nupkg" }); } [Fact] public void OutputsPackagesFlatIntoOutputDirWhenOutputParameterIsPassed() { - var root = Temp.CreateDirectory(); + var testInstance = TestAssetsManager + .CreateTestInstance("TestLibraryWithConfiguration") + .WithBuildArtifacts() + .WithLockFiles(); - var testLibDir = root.CreateDirectory("TestLibrary"); - var sourceTestLibDir = Path.Combine(_testProjectsRoot, "TestLibraryWithConfiguration"); + var testProject = Path.Combine(testInstance.Path, "project.json"); - CopyProjectToTempDir(sourceTestLibDir, testLibDir); - - var outputDir = new DirectoryInfo(Path.Combine(testLibDir.Path, "bin2")); - var testProject = GetProjectPath(testLibDir); + var outputDir = new DirectoryInfo(Path.Combine(testInstance.Path, "bin2")); var packCommand = new PackCommand(testProject, output: outputDir.FullName); var result = packCommand.Execute(); result.Should().Pass(); outputDir.Should().Exist(); - outputDir.Should().HaveFiles(new[] { "TestLibrary.1.0.0.nupkg", "TestLibrary.1.0.0.symbols.nupkg" }); + outputDir.Should().HaveFiles(new[] { "TestLibraryWithConfiguration.1.0.0.nupkg", "TestLibraryWithConfiguration.1.0.0.symbols.nupkg" }); } [Fact] @@ -100,9 +92,10 @@ namespace Microsoft.DotNet.Tools.Compiler.Tests [Fact] public void HasIncludedFiles() { - var testInstance = TestAssetsManager.CreateTestInstance("EndToEndTestApp") - .WithLockFiles() - .WithBuildArtifacts(); + var testInstance = TestAssetsManager + .CreateTestInstance("EndToEndTestApp") + .WithLockFiles() + .WithBuildArtifacts(); var cmd = new PackCommand(Path.Combine(testInstance.TestRoot, Project.FileName)); cmd.Execute().Should().Pass(); @@ -156,27 +149,25 @@ namespace Microsoft.DotNet.Tools.Compiler.Tests [Fact] public void HasServiceableFlagWhenArgumentPassed() { - var root = Temp.CreateDirectory(); + var testInstance = TestAssetsManager + .CreateTestInstance("TestLibraryWithConfiguration") + .WithBuildArtifacts() + .WithLockFiles(); - var testLibDir = root.CreateDirectory("TestLibrary"); - var sourceTestLibDir = Path.Combine(_testProjectsRoot, "TestLibraryWithConfiguration"); - - CopyProjectToTempDir(sourceTestLibDir, testLibDir); - - var testProject = GetProjectPath(testLibDir); + var testProject = Path.Combine(testInstance.Path, "project.json"); var packCommand = new PackCommand(testProject, configuration: "Debug", serviceable: true); var result = packCommand.Execute(); result.Should().Pass(); - var outputDir = new DirectoryInfo(Path.Combine(testLibDir.Path, "bin", "Debug")); + var outputDir = new DirectoryInfo(Path.Combine(testInstance.Path, "bin", "Debug")); outputDir.Should().Exist(); - outputDir.Should().HaveFiles(new[] { "TestLibrary.1.0.0.nupkg", "TestLibrary.1.0.0.symbols.nupkg" }); + outputDir.Should().HaveFiles(new[] { "TestLibraryWithConfiguration.1.0.0.nupkg", "TestLibraryWithConfiguration.1.0.0.symbols.nupkg" }); - var outputPackage = Path.Combine(outputDir.FullName, "TestLibrary.1.0.0.nupkg"); + var outputPackage = Path.Combine(outputDir.FullName, "TestLibraryWithConfiguration.1.0.0.nupkg"); var zip = ZipFile.Open(outputPackage, ZipArchiveMode.Read); - zip.Entries.Should().Contain(e => e.FullName == "TestLibrary.nuspec"); + zip.Entries.Should().Contain(e => e.FullName == "TestLibraryWithConfiguration.nuspec"); - var manifestReader = new StreamReader(zip.Entries.First(e => e.FullName == "TestLibrary.nuspec").Open()); + var manifestReader = new StreamReader(zip.Entries.First(e => e.FullName == "TestLibraryWithConfiguration.nuspec").Open()); var nuspecXml = XDocument.Parse(manifestReader.ReadToEnd()); var node = nuspecXml.Descendants().Single(e => e.Name.LocalName == "serviceable"); Assert.Equal("true", node.Value); From 31756737d32e9f0164f3cc3b4c4de2075f5b7763 Mon Sep 17 00:00:00 2001 From: Piotr Puszkiewicz Date: Tue, 9 Aug 2016 23:15:22 -0700 Subject: [PATCH 05/18] dotnet-resgen.Tests move dotnet-resgen.Tests to TAM remove unnecessary code from dotnet-publish.Tests add missing lock files in dotnet-compile.Tests --- test/dotnet-compile.Tests/CompilerTests.cs | 25 +++++++++---------- test/dotnet-publish.Tests/PublishTests.cs | 6 ----- .../Microsoft.DotNet.Tools.Resgen.Tests.cs | 20 +++++---------- 3 files changed, 18 insertions(+), 33 deletions(-) diff --git a/test/dotnet-compile.Tests/CompilerTests.cs b/test/dotnet-compile.Tests/CompilerTests.cs index 6e1def720..26b8e6bfb 100644 --- a/test/dotnet-compile.Tests/CompilerTests.cs +++ b/test/dotnet-compile.Tests/CompilerTests.cs @@ -16,7 +16,9 @@ namespace Microsoft.DotNet.Tools.Compiler.Tests [Fact] public void XmlDocumentationFileIsGenerated() { - var testInstance = TestAssetsManager.CreateTestInstance("TestAppWithLibrary"); + var testInstance = TestAssetsManager + .CreateTestInstance("TestAppWithLibrary") + .WithLockFiles(); var testLibDir = Path.Combine(testInstance.TestRoot, "TestLibrary"); @@ -37,7 +39,9 @@ namespace Microsoft.DotNet.Tools.Compiler.Tests [Fact] public void SatelliteAssemblyIsGeneratedByDotnetBuild() { - var testInstance = TestAssetsManager.CreateTestInstance("TestProjectWithCultureSpecificResource"); + var testInstance = TestAssetsManager + .CreateTestInstance("TestProjectWithCultureSpecificResource") + .WithLockFiles(); var testLibDir = testInstance.TestRoot; @@ -60,7 +64,9 @@ namespace Microsoft.DotNet.Tools.Compiler.Tests [Fact] public void LibraryWithAnalyzer() { - var testInstance = TestAssetsManager.CreateTestInstance("TestLibraryWithAnalyzer"); + var testInstance = TestAssetsManager + .CreateTestInstance("TestLibraryWithAnalyzer") + .WithLockFiles(); var testLibDir = testInstance.TestRoot; @@ -79,19 +85,12 @@ namespace Microsoft.DotNet.Tools.Compiler.Tests { var root = Temp.CreateDirectory(); - var spaceBufferDirectory = root.CreateDirectory("space directory"); - - var testInstance = TestAssetsManager.CreateTestInstance("TestAppCompilationContext"); - - var testAppDir = testInstance.TestRoot; - - Directory.Move(testInstance.TestRoot, spaceBufferDirectory.Path); - - Directory.Move(spaceBufferDirectory.Path, testInstance.TestRoot); + var testInstance = TestAssetsManager + .CreateTestInstance("TestAppCompilationContext", identifier: "A SPACE") + .WithLockFiles(); var testProjectDir = Path.Combine( Directory.GetParent(testInstance.TestRoot).FullName, - "space directory", "TestAppCompilationContext", "TestApp"); diff --git a/test/dotnet-publish.Tests/PublishTests.cs b/test/dotnet-publish.Tests/PublishTests.cs index d216b7d67..2397bcbdc 100644 --- a/test/dotnet-publish.Tests/PublishTests.cs +++ b/test/dotnet-publish.Tests/PublishTests.cs @@ -14,14 +14,8 @@ namespace Microsoft.DotNet.Tools.Publish.Tests { public class PublishTests : TestBase { - private readonly string _testProjectsRoot; private readonly Func _getProjectJson = ProjectUtils.GetProjectJson; - public PublishTests() - { - _testProjectsRoot = Path.Combine(RepoRoot, "TestAssets", "TestProjects"); - } - private static readonly dynamic[] CrossPublishTestData = new[] { new diff --git a/test/dotnet-resgen.Tests/Microsoft.DotNet.Tools.Resgen.Tests.cs b/test/dotnet-resgen.Tests/Microsoft.DotNet.Tools.Resgen.Tests.cs index 6d885301b..8908ce22a 100644 --- a/test/dotnet-resgen.Tests/Microsoft.DotNet.Tools.Resgen.Tests.cs +++ b/test/dotnet-resgen.Tests/Microsoft.DotNet.Tools.Resgen.Tests.cs @@ -12,24 +12,16 @@ namespace Microsoft.DotNet.Tools.Resgen.Tests { public class ResgenTests : TestBase { - private readonly string _testProjectsRoot; - private readonly TempDirectory _root; - - public ResgenTests() - { - _testProjectsRoot = Path.Combine(AppContext.BaseDirectory, "TestAssets", "TestProjects"); - _root = Temp.CreateDirectory(); - } - [Fact] public void Test_Build_Project_with_Resources_with_Space_in_Path_Should_Succeed() { - var spaceBufferDirectory = _root.CreateDirectory("space directory"); - var testAppDir = spaceBufferDirectory.CreateDirectory("TestProjectWithResource"); + var testInstance = TestAssetsManager + .CreateTestInstance("TestProjectWithResource", identifier: "A SPACE") + .WithBuildArtifacts() + .WithLockFiles(); - CopyProjectToTempDir(Path.Combine(_testProjectsRoot, "TestProjectWithResource"), testAppDir); - - var testProject = GetProjectPath(testAppDir); + var testProject = Path.Combine(testInstance.Path, "project.json"); + var buildCommand = new BuildCommand(testProject); buildCommand.Execute().Should().Pass(); From 9f08302bbf150afeff854e2d38370ba19dc03bf4 Mon Sep 17 00:00:00 2001 From: Piotr Puszkiewicz Date: Tue, 9 Aug 2016 23:30:12 -0700 Subject: [PATCH 06/18] Move packagedcommandtests to TAM --- test/dotnet.Tests/PackagedCommandTests.cs | 51 ++++++++++++++++------- 1 file changed, 35 insertions(+), 16 deletions(-) diff --git a/test/dotnet.Tests/PackagedCommandTests.cs b/test/dotnet.Tests/PackagedCommandTests.cs index 9dc045d10..2e69a44c2 100644 --- a/test/dotnet.Tests/PackagedCommandTests.cs +++ b/test/dotnet.Tests/PackagedCommandTests.cs @@ -7,6 +7,7 @@ using System.IO; using System.Runtime.InteropServices; using FluentAssertions; using Microsoft.DotNet.Cli.Utils; +using Microsoft.DotNet.TestFramework; using Microsoft.DotNet.Tools.Test.Utilities; using Microsoft.DotNet.InternalAbstractions; using Xunit; @@ -15,8 +16,7 @@ namespace Microsoft.DotNet.Tests { public class PackagedCommandTests : TestBase { - private readonly string _testProjectsRoot; - private readonly string _desktopTestProjectsRoot; + private readonly TestAssetsManager _desktopTestAssetsManager = GetTestGroupTestAssetsManager("DesktopTestProjects"); public static IEnumerable DependencyToolArguments { @@ -46,18 +46,16 @@ namespace Microsoft.DotNet.Tests } } - public PackagedCommandTests() - { - _testProjectsRoot = Path.Combine(AppContext.BaseDirectory, "TestAssets", "TestProjects"); - _desktopTestProjectsRoot = Path.Combine(AppContext.BaseDirectory, "TestAssets", "DesktopTestProjects"); - } - [Theory] [InlineData("AppWithDirectAndToolDependency")] [InlineData("AppWithToolDependency")] public void TestProjectToolIsAvailableThroughDriver(string appName) { - var appDirectory = Path.Combine(_testProjectsRoot, appName); + var testInstance = TestAssetsManager + .CreateTestInstance(appName, identifier: appName) + .WithLockFiles(); + + var appDirectory = testInstance.Path; new BuildCommand(Path.Combine(appDirectory, "project.json")) .Execute() @@ -75,7 +73,11 @@ namespace Microsoft.DotNet.Tests [Fact] public void CanInvokeToolWhosePackageNameIsDifferentFromDllName() { - var appDirectory = Path.Combine(_testProjectsRoot, "AppWithDependencyOnToolWithOutputName"); + var testInstance = TestAssetsManager + .CreateTestInstance("AppWithDependencyOnToolWithOutputName") + .WithLockFiles(); + + var appDirectory = testInstance.Path; new BuildCommand(Path.Combine(appDirectory, "project.json")) .Execute() @@ -93,7 +95,11 @@ namespace Microsoft.DotNet.Tests [Fact] public void CanInvokeToolFromDirectDependenciesIfPackageNameDifferentFromToolName() { - var appDirectory = Path.Combine(_testProjectsRoot, "AppWithDirectDependencyWithOutputName"); + var testInstance = TestAssetsManager + .CreateTestInstance("AppWithDirectDependencyWithOutputName") + .WithLockFiles(); + + var appDirectory = testInstance.Path; const string framework = ".NETCoreApp,Version=v1.0"; new BuildCommand(Path.Combine(appDirectory, "project.json")) @@ -119,7 +125,11 @@ namespace Microsoft.DotNet.Tests return; } - var appDirectory = Path.Combine(_desktopTestProjectsRoot, "AppWithDirectDependencyDesktopAndPortable"); + var testInstance = _desktopTestAssetsManager + .CreateTestInstance("AppWithDirectDependencyWithOutputName", identifier: framework) + .WithLockFiles(); + + var appDirectory = testInstance.Path; new BuildCommand(Path.Combine(appDirectory, "project.json")) .Execute() @@ -144,8 +154,12 @@ namespace Microsoft.DotNet.Tests { return; } + + var testInstance = _desktopTestAssetsManager + .CreateTestInstance("LibraryWithDirectDependencyDesktopAndPortable", identifier: framework) + .WithLockFiles(); - var appDirectory = Path.Combine(_desktopTestProjectsRoot, "LibraryWithDirectDependencyDesktopAndPortable"); + var appDirectory = testInstance.Path; new BuildCommand(Path.Combine(appDirectory, "project.json")) .Execute() @@ -162,7 +176,9 @@ namespace Microsoft.DotNet.Tests [Fact] public void ToolsCanAccessDependencyContextProperly() { - var appDirectory = Path.Combine(_testProjectsRoot, "DependencyContextFromTool"); + var testInstance = TestAssetsManager.CreateTestInstance("DependencyContextFromTool"); + + var appDirectory = testInstance.Path; CommandResult result = new DependencyContextTestCommand() { WorkingDirectory = appDirectory } .Execute(Path.Combine(appDirectory, "project.json")); @@ -173,8 +189,11 @@ namespace Microsoft.DotNet.Tests [Fact] public void TestProjectDependencyIsNotAvailableThroughDriver() { - var appName = "AppWithDirectDependency"; - var appDirectory = Path.Combine(_testProjectsRoot, appName); + var testInstance = TestAssetsManager + .CreateTestInstance("AppWithDirectDependency") + .WithLockFiles(); + + var appDirectory = testInstance.Path; new BuildCommand(Path.Combine(appDirectory, "project.json")) .Execute() From fa9c795823ec9b87d7ee7c6cbdce7c32acd40af8 Mon Sep 17 00:00:00 2001 From: Piotr Puszkiewicz Date: Tue, 9 Aug 2016 23:54:37 -0700 Subject: [PATCH 07/18] Move Microsoft.Dotnet.Cli.Utils.Tests to TAM --- .../GivenAProjectDependencyCommandResolver.cs | 70 ++++++++++++++----- .../GivenAProjectToolsCommandResolver.cs | 38 +++++++--- .../StreamForwarderTests.cs | 16 ++--- 3 files changed, 83 insertions(+), 41 deletions(-) diff --git a/test/Microsoft.DotNet.Cli.Utils.Tests/GivenAProjectDependencyCommandResolver.cs b/test/Microsoft.DotNet.Cli.Utils.Tests/GivenAProjectDependencyCommandResolver.cs index 3f2d057fa..7d30b2db4 100644 --- a/test/Microsoft.DotNet.Cli.Utils.Tests/GivenAProjectDependencyCommandResolver.cs +++ b/test/Microsoft.DotNet.Cli.Utils.Tests/GivenAProjectDependencyCommandResolver.cs @@ -12,11 +12,10 @@ using Xunit; namespace Microsoft.DotNet.Cli.Utils.Tests { - public class GivenAProjectDependenciesCommandResolver + public class GivenAProjectDependenciesCommandResolver : TestBase { - private static readonly string s_liveProjectDirectory = - Path.Combine(AppContext.BaseDirectory, "TestAssets/TestProjects/AppWithDirectDependency"); + private const string TestProjectName = "AppWithDirectDependency"; [Fact] public void It_returns_null_when_CommandName_is_null() @@ -61,11 +60,14 @@ namespace Microsoft.DotNet.Cli.Utils.Tests { var projectDependenciesCommandResolver = SetupProjectDependenciesCommandResolver(); + var testInstance = TestAssetsManager.CreateTestInstance(TestProjectName) + .WithLockFiles(); + var commandResolverArguments = new CommandResolverArguments() { CommandName = "command", CommandArguments = new string[] { "" }, - ProjectDirectory = s_liveProjectDirectory, + ProjectDirectory = testInstance.Path, Configuration = "Debug", Framework = null }; @@ -80,11 +82,14 @@ namespace Microsoft.DotNet.Cli.Utils.Tests { var projectDependenciesCommandResolver = SetupProjectDependenciesCommandResolver(); + var testInstance = TestAssetsManager.CreateTestInstance(TestProjectName) + .WithLockFiles(); + var commandResolverArguments = new CommandResolverArguments() { CommandName = "command", CommandArguments = new string[] { "" }, - ProjectDirectory = s_liveProjectDirectory, + ProjectDirectory = testInstance.Path, Configuration = null, Framework = FrameworkConstants.CommonFrameworks.NetCoreApp10 }; @@ -99,11 +104,14 @@ namespace Microsoft.DotNet.Cli.Utils.Tests { var projectDependenciesCommandResolver = SetupProjectDependenciesCommandResolver(); + var testInstance = TestAssetsManager.CreateTestInstance(TestProjectName) + .WithLockFiles(); + var commandResolverArguments = new CommandResolverArguments() { CommandName = "nonexistent-command", CommandArguments = null, - ProjectDirectory = s_liveProjectDirectory, + ProjectDirectory = testInstance.Path, Configuration = "Debug", Framework = FrameworkConstants.CommonFrameworks.NetCoreApp10 }; @@ -118,11 +126,15 @@ namespace Microsoft.DotNet.Cli.Utils.Tests { var projectDependenciesCommandResolver = SetupProjectDependenciesCommandResolver(); + var testInstance = TestAssetsManager.CreateTestInstance(TestProjectName) + .WithBuildArtifacts() + .WithLockFiles(); + var commandResolverArguments = new CommandResolverArguments() { CommandName = "dotnet-hello", CommandArguments = null, - ProjectDirectory = s_liveProjectDirectory, + ProjectDirectory = testInstance.Path, Configuration = "Debug", Framework = FrameworkConstants.CommonFrameworks.NetCoreApp10 }; @@ -143,11 +155,15 @@ namespace Microsoft.DotNet.Cli.Utils.Tests { var projectDependenciesCommandResolver = SetupProjectDependenciesCommandResolver(); + var testInstance = TestAssetsManager.CreateTestInstance(TestProjectName) + .WithBuildArtifacts() + .WithLockFiles(); + var commandResolverArguments = new CommandResolverArguments() { CommandName = "dotnet-hello", CommandArguments = new[] { "arg with space" }, - ProjectDirectory = s_liveProjectDirectory, + ProjectDirectory = testInstance.Path, Configuration = "Debug", Framework = FrameworkConstants.CommonFrameworks.NetCoreApp10 }; @@ -159,15 +175,19 @@ namespace Microsoft.DotNet.Cli.Utils.Tests } [Fact] - public void It_passes_depsfile_arg_to_host_when_returning_a_commandspec() + public void It_passes_depsfile_arg_to_host_when_returning_a_CommandSpec() { var projectDependenciesCommandResolver = SetupProjectDependenciesCommandResolver(); + var testInstance = TestAssetsManager.CreateTestInstance(TestProjectName) + .WithBuildArtifacts() + .WithLockFiles(); + var commandResolverArguments = new CommandResolverArguments() { CommandName = "dotnet-hello", CommandArguments = null, - ProjectDirectory = s_liveProjectDirectory, + ProjectDirectory = testInstance.Path, Configuration = "Debug", Framework = FrameworkConstants.CommonFrameworks.NetCoreApp10 }; @@ -182,26 +202,30 @@ namespace Microsoft.DotNet.Cli.Utils.Tests public void It_sets_depsfile_in_output_path_in_commandspec() { var projectDependenciesCommandResolver = SetupProjectDependenciesCommandResolver(); - var outputDir = Path.Combine(AppContext.BaseDirectory, "outdir"); + + var testInstance = TestAssetsManager.CreateTestInstance(TestProjectName) + .WithLockFiles(); + + var outputDir = Path.Combine(testInstance.Path, "outdir"); var commandResolverArguments = new CommandResolverArguments { CommandName = "dotnet-hello", CommandArguments = null, - ProjectDirectory = s_liveProjectDirectory, + ProjectDirectory = testInstance.Path, Configuration = "Debug", Framework = FrameworkConstants.CommonFrameworks.NetCoreApp10, OutputPath = outputDir }; var buildCommand = new BuildCommand( - Path.Combine(s_liveProjectDirectory, "project.json"), + Path.Combine(testInstance.Path, "project.json"), output: outputDir, framework: FrameworkConstants.CommonFrameworks.NetCoreApp10.ToString()) .Execute().Should().Pass(); var projectContext = ProjectContext.Create( - s_liveProjectDirectory, + testInstance.Path, FrameworkConstants.CommonFrameworks.NetCoreApp10, RuntimeEnvironmentRidExtensions.GetAllCandidateRuntimeIdentifiers()); @@ -218,26 +242,30 @@ namespace Microsoft.DotNet.Cli.Utils.Tests public void It_sets_depsfile_in_build_base_path_in_commandspec() { var projectDependenciesCommandResolver = SetupProjectDependenciesCommandResolver(); - var buildBasePath = Path.Combine(AppContext.BaseDirectory, "basedir"); + + var testInstance = TestAssetsManager.CreateTestInstance(TestProjectName) + .WithLockFiles(); + + var buildBasePath = Path.Combine(testInstance.Path, "basedir"); var commandResolverArguments = new CommandResolverArguments { CommandName = "dotnet-hello", CommandArguments = null, - ProjectDirectory = s_liveProjectDirectory, + ProjectDirectory = testInstance.Path, Configuration = "Debug", Framework = FrameworkConstants.CommonFrameworks.NetCoreApp10, BuildBasePath = buildBasePath }; var buildCommand = new BuildCommand( - Path.Combine(s_liveProjectDirectory, "project.json"), + Path.Combine(testInstance.Path, "project.json"), buildBasePath: buildBasePath, framework: FrameworkConstants.CommonFrameworks.NetCoreApp10.ToString()) .Execute().Should().Pass(); var projectContext = ProjectContext.Create( - s_liveProjectDirectory, + testInstance.Path, FrameworkConstants.CommonFrameworks.NetCoreApp10, RuntimeEnvironmentRidExtensions.GetAllCandidateRuntimeIdentifiers()); @@ -255,11 +283,15 @@ namespace Microsoft.DotNet.Cli.Utils.Tests { var projectDependenciesCommandResolver = SetupProjectDependenciesCommandResolver(); + var testInstance = TestAssetsManager.CreateTestInstance(TestProjectName) + .WithBuildArtifacts() + .WithLockFiles(); + var commandResolverArguments = new CommandResolverArguments() { CommandName = "dotnet-hello", CommandArguments = null, - ProjectDirectory = s_liveProjectDirectory, + ProjectDirectory = testInstance.Path, Configuration = "Debug", Framework = FrameworkConstants.CommonFrameworks.NetCoreApp10 }; diff --git a/test/Microsoft.DotNet.Cli.Utils.Tests/GivenAProjectToolsCommandResolver.cs b/test/Microsoft.DotNet.Cli.Utils.Tests/GivenAProjectToolsCommandResolver.cs index 830a00e94..14908478a 100644 --- a/test/Microsoft.DotNet.Cli.Utils.Tests/GivenAProjectToolsCommandResolver.cs +++ b/test/Microsoft.DotNet.Cli.Utils.Tests/GivenAProjectToolsCommandResolver.cs @@ -7,6 +7,7 @@ using System.Linq; using FluentAssertions; using Microsoft.DotNet.ProjectModel; using Microsoft.DotNet.ProjectModel.Graph; +using Microsoft.DotNet.TestFramework; using Microsoft.DotNet.Tools.Test.Utilities; using NuGet.Frameworks; using NuGet.Versioning; @@ -14,12 +15,11 @@ using Xunit; namespace Microsoft.DotNet.Cli.Utils.Tests { - public class GivenAProjectToolsCommandResolver + public class GivenAProjectToolsCommandResolver : TestBase { private static readonly NuGetFramework s_toolPackageFramework = FrameworkConstants.CommonFrameworks.NetCoreApp10; - private static readonly string s_liveProjectDirectory = - Path.Combine(AppContext.BaseDirectory, "TestAssets/TestProjects/AppWithToolDependency"); + private const string TestProjectName = "AppWithToolDependency"; [Fact] public void It_returns_null_when_CommandName_is_null() @@ -60,11 +60,14 @@ namespace Microsoft.DotNet.Cli.Utils.Tests { var projectToolsCommandResolver = SetupProjectToolsCommandResolver(); + var testInstance = TestAssetsManager.CreateTestInstance(TestProjectName) + .WithLockFiles(); + var commandResolverArguments = new CommandResolverArguments() { CommandName = "nonexistent-command", CommandArguments = null, - ProjectDirectory = s_liveProjectDirectory + ProjectDirectory = testInstance.Path }; var result = projectToolsCommandResolver.Resolve(commandResolverArguments); @@ -77,11 +80,14 @@ namespace Microsoft.DotNet.Cli.Utils.Tests { var projectToolsCommandResolver = SetupProjectToolsCommandResolver(); + var testInstance = TestAssetsManager.CreateTestInstance(TestProjectName) + .WithLockFiles(); + var commandResolverArguments = new CommandResolverArguments() { CommandName = "dotnet-portable", CommandArguments = null, - ProjectDirectory = s_liveProjectDirectory + ProjectDirectory = testInstance.Path }; var result = projectToolsCommandResolver.Resolve(commandResolverArguments); @@ -100,11 +106,14 @@ namespace Microsoft.DotNet.Cli.Utils.Tests { var projectToolsCommandResolver = SetupProjectToolsCommandResolver(); + var testInstance = TestAssetsManager.CreateTestInstance(TestProjectName) + .WithLockFiles(); + var commandResolverArguments = new CommandResolverArguments() { CommandName = "dotnet-portable", CommandArguments = new[] { "arg with space" }, - ProjectDirectory = s_liveProjectDirectory + ProjectDirectory = testInstance.Path }; var result = projectToolsCommandResolver.Resolve(commandResolverArguments); @@ -118,11 +127,14 @@ namespace Microsoft.DotNet.Cli.Utils.Tests { var projectToolsCommandResolver = SetupProjectToolsCommandResolver(); + var testInstance = TestAssetsManager.CreateTestInstance(TestProjectName) + .WithLockFiles(); + var commandResolverArguments = new CommandResolverArguments() { CommandName = "dotnet-portable", CommandArguments = null, - ProjectDirectory = s_liveProjectDirectory + ProjectDirectory = testInstance.Path }; var result = projectToolsCommandResolver.Resolve(commandResolverArguments); @@ -138,14 +150,17 @@ namespace Microsoft.DotNet.Cli.Utils.Tests { var projectToolsCommandResolver = SetupProjectToolsCommandResolver(); + var testInstance = TestAssetsManager.CreateTestInstance(TestProjectName) + .WithLockFiles(); + var commandResolverArguments = new CommandResolverArguments() { CommandName = "dotnet-portable", CommandArguments = null, - ProjectDirectory = s_liveProjectDirectory + ProjectDirectory = testInstance.Path }; - var context = ProjectContext.Create(Path.Combine(s_liveProjectDirectory, "project.json"), s_toolPackageFramework); + var context = ProjectContext.Create(Path.Combine(testInstance.Path, "project.json"), s_toolPackageFramework); var nugetPackagesRoot = context.PackagesDirectory; var toolPathCalculator = new ToolPathCalculator(nugetPackagesRoot); @@ -180,7 +195,10 @@ namespace Microsoft.DotNet.Cli.Utils.Tests [Fact] public void Generate_deps_json_method_doesnt_overwrite_when_deps_file_already_exists() { - var context = ProjectContext.Create(Path.Combine(s_liveProjectDirectory, "project.json"), s_toolPackageFramework); + var testInstance = TestAssetsManager.CreateTestInstance(TestProjectName) + .WithLockFiles(); + + var context = ProjectContext.Create(Path.Combine(testInstance.Path, "project.json"), s_toolPackageFramework); var nugetPackagesRoot = context.PackagesDirectory; var toolPathCalculator = new ToolPathCalculator(nugetPackagesRoot); diff --git a/test/Microsoft.DotNet.Cli.Utils.Tests/StreamForwarderTests.cs b/test/Microsoft.DotNet.Cli.Utils.Tests/StreamForwarderTests.cs index f59b81ec1..b21bf321b 100644 --- a/test/Microsoft.DotNet.Cli.Utils.Tests/StreamForwarderTests.cs +++ b/test/Microsoft.DotNet.Cli.Utils.Tests/StreamForwarderTests.cs @@ -14,20 +14,12 @@ namespace StreamForwarderTests public class StreamForwarderTests : TestBase { private static readonly string s_rid = RuntimeEnvironmentRidExtensions.GetLegacyRestoreRuntimeIdentifier(); - private static readonly string s_testProjectRoot = Path.Combine(AppContext.BaseDirectory, "TestAssets", "TestProjects"); - - private TempDirectory _root; public static void Main() { Console.WriteLine("Dummy Entrypoint"); } - public StreamForwarderTests() - { - _root = Temp.CreateDirectory(); - } - public static IEnumerable ForwardingTheoryVariations { get @@ -127,15 +119,15 @@ namespace StreamForwarderTests private string SetupTestProject() { - var sourceTestProjectPath = Path.Combine(s_testProjectRoot, "OutputStandardOutputAndError"); - var binTestProjectPath = _root.CopyDirectory(sourceTestProjectPath).Path; + var testInstance = TestAssetsManager.CreateTestInstance("OutputStandardOutputAndError") + .WithLockFiles(); - var buildCommand = new BuildCommand(Path.Combine(binTestProjectPath, "project.json")); + var buildCommand = new BuildCommand(Path.Combine(testInstance.Path, "project.json")); buildCommand.Execute(); var buildOutputExe = "OutputStandardOutputAndError" + Constants.ExeSuffix; - var buildOutputPath = Path.Combine(binTestProjectPath, "bin/Debug/netcoreapp1.0", buildOutputExe); + var buildOutputPath = Path.Combine(testInstance.Path, "bin/Debug/netcoreapp1.0", buildOutputExe); return buildOutputPath; } From 4e2d13a8ffd7afc66d5a28f353d73fd968cacfb2 Mon Sep 17 00:00:00 2001 From: Piotr Puszkiewicz Date: Tue, 9 Aug 2016 23:59:14 -0700 Subject: [PATCH 08/18] Microsoft.DotNet.ProjectModel.Tests to TAM --- .../LibraryExporterTests.cs | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/test/Microsoft.DotNet.ProjectModel.Tests/LibraryExporterTests.cs b/test/Microsoft.DotNet.ProjectModel.Tests/LibraryExporterTests.cs index 40180c97d..fc42281c3 100644 --- a/test/Microsoft.DotNet.ProjectModel.Tests/LibraryExporterTests.cs +++ b/test/Microsoft.DotNet.ProjectModel.Tests/LibraryExporterTests.cs @@ -7,24 +7,18 @@ namespace Microsoft.DotNet.ProjectModel.Tests { public class LibraryExporterTests : TestBase { - private readonly string _testProjectsRoot; - - public LibraryExporterTests() - { - _testProjectsRoot = Path.Combine(AppContext.BaseDirectory, "TestAssets", "TestProjects"); - } - [Fact] public void GetLibraryExportsWithoutLockFile() { - var root = Temp.CreateDirectory().CopyDirectory(Path.Combine(_testProjectsRoot, "TestAppWithLibrary")); - foreach (var lockfile in Directory.GetFiles(root.Path, "project.lock.json")) + var testInstance = TestAssetsManager.CreateTestInstance("TestAppWithLibrary"); + + foreach (var lockfile in Directory.GetFiles(testInstance.Path, "project.lock.json")) { File.Delete(lockfile); } - var builder = new ProjectContextBuilder().WithProjectDirectory(Path.Combine(root.Path, "TestApp")); + var builder = new ProjectContextBuilder().WithProjectDirectory(Path.Combine(testInstance.Path, "TestApp")); foreach (var context in builder.BuildAllTargets()) { From 9a1d4b7ef81068b36deb863d7c18cb34b0f6b4a1 Mon Sep 17 00:00:00 2001 From: Piotr Puszkiewicz Date: Wed, 10 Aug 2016 03:12:03 -0700 Subject: [PATCH 09/18] Fix packagedcommandtests --- test/dotnet.Tests/PackagedCommandTests.cs | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/test/dotnet.Tests/PackagedCommandTests.cs b/test/dotnet.Tests/PackagedCommandTests.cs index 2e69a44c2..5c1858af9 100644 --- a/test/dotnet.Tests/PackagedCommandTests.cs +++ b/test/dotnet.Tests/PackagedCommandTests.cs @@ -26,8 +26,8 @@ namespace Microsoft.DotNet.Tests var projectOutputPath = $"AppWithDirectDependencyDesktopAndPortable\\bin\\Debug\\net451\\{rid}\\dotnet-desktop-and-portable.exe"; return new[] { - new object[] { ".NETCoreApp,Version=v1.0", "CoreFX", "lib\\netcoreapp1.0\\dotnet-desktop-and-portable.dll", true }, - new object[] { ".NETFramework,Version=v4.5.1", "NetFX", projectOutputPath, true } + new object[] { "CoreFX", ".NETCoreApp,Version=v1.0", "lib\\netcoreapp1.0\\dotnet-desktop-and-portable.dll", true }, + new object[] { "NetFX", ".NETFramework,Version=v4.5.1", projectOutputPath, true } }; } } @@ -40,8 +40,8 @@ namespace Microsoft.DotNet.Tests var projectOutputPath = $"LibraryWithDirectDependencyDesktopAndPortable\\bin\\Debug\\net451\\dotnet-desktop-and-portable.exe"; return new[] { - new object[] { ".NETStandard,Version=v1.6", "CoreFX", "lib\\netstandard1.6\\dotnet-desktop-and-portable.dll", true }, - new object[] { ".NETFramework,Version=v4.5.1", "NetFX", projectOutputPath, true } + new object[] { "CoreFX", ".NETStandard,Version=v1.6", "lib\\netstandard1.6\\dotnet-desktop-and-portable.dll", true }, + new object[] { "NetFX", ".NETFramework,Version=v4.5.1", projectOutputPath, true } }; } } @@ -118,7 +118,7 @@ namespace Microsoft.DotNet.Tests // need conditional theories so we can skip on non-Windows [Theory] [MemberData("DependencyToolArguments")] - public void TestFrameworkSpecificDependencyToolsCanBeInvoked(string framework, string args, string expectedDependencyToolPath, bool windowsOnly) + public void TestFrameworkSpecificDependencyToolsCanBeInvoked(string identifier, string framework, string expectedDependencyToolPath, bool windowsOnly) { if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows) && windowsOnly) { @@ -126,7 +126,8 @@ namespace Microsoft.DotNet.Tests } var testInstance = _desktopTestAssetsManager - .CreateTestInstance("AppWithDirectDependencyWithOutputName", identifier: framework) + .CreateTestInstance("AppWithDirectDependencyDesktopAndPortable", identifier: identifier) + .WithBuildArtifacts() .WithLockFiles(); var appDirectory = testInstance.Path; @@ -137,10 +138,10 @@ namespace Microsoft.DotNet.Tests .Pass(); CommandResult result = new DependencyToolInvokerCommand { WorkingDirectory = appDirectory } - .ExecuteWithCapturedOutput("desktop-and-portable", framework, args); + .ExecuteWithCapturedOutput("desktop-and-portable", framework, identifier); result.Should().HaveStdOutContaining(framework); - result.Should().HaveStdOutContaining(args); + result.Should().HaveStdOutContaining(identifier); result.Should().HaveStdOutContaining(expectedDependencyToolPath); result.Should().NotHaveStdErr(); result.Should().Pass(); @@ -148,7 +149,7 @@ namespace Microsoft.DotNet.Tests [Theory] [MemberData("LibraryDependencyToolArguments")] - public void TestFrameworkSpecificLibraryDependencyToolsCannotBeInvoked(string framework, string args, string expectedDependencyToolPath, bool windowsOnly) + public void TestFrameworkSpecificLibraryDependencyToolsCannotBeInvoked(string identifier, string framework, string expectedDependencyToolPath, bool windowsOnly) { if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows) && windowsOnly) { @@ -156,7 +157,7 @@ namespace Microsoft.DotNet.Tests } var testInstance = _desktopTestAssetsManager - .CreateTestInstance("LibraryWithDirectDependencyDesktopAndPortable", identifier: framework) + .CreateTestInstance("LibraryWithDirectDependencyDesktopAndPortable", identifier: identifier) .WithLockFiles(); var appDirectory = testInstance.Path; @@ -167,7 +168,7 @@ namespace Microsoft.DotNet.Tests .Pass(); CommandResult result = new DependencyToolInvokerCommand { WorkingDirectory = appDirectory } - .ExecuteWithCapturedOutput("desktop-and-portable", framework, args); + .ExecuteWithCapturedOutput("desktop-and-portable", framework, identifier); result.Should().HaveStdOutContaining("Command not found"); result.Should().Fail(); From c3971fc100b3188cda220f43758650376314a32b Mon Sep 17 00:00:00 2001 From: PiotrP Date: Wed, 10 Aug 2016 12:41:22 -0700 Subject: [PATCH 10/18] Add missing build artifacts --- test/dotnet.Tests/PackagedCommandTests.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/test/dotnet.Tests/PackagedCommandTests.cs b/test/dotnet.Tests/PackagedCommandTests.cs index 5c1858af9..3b209cbc6 100644 --- a/test/dotnet.Tests/PackagedCommandTests.cs +++ b/test/dotnet.Tests/PackagedCommandTests.cs @@ -97,6 +97,7 @@ namespace Microsoft.DotNet.Tests { var testInstance = TestAssetsManager .CreateTestInstance("AppWithDirectDependencyWithOutputName") + .WithBuildArtifacts() .WithLockFiles(); var appDirectory = testInstance.Path; From 3194ec1c3a0a05e02f0442d04c6bf03883e9a186 Mon Sep 17 00:00:00 2001 From: Piotr Puszkiewicz Date: Thu, 18 Aug 2016 10:17:58 -0700 Subject: [PATCH 11/18] Shorten test asset names --- .../.noautobuild | 0 .../Program.cs | 0 .../project.json | 0 .../Program.cs | 0 .../project.json | 0 .../Program.cs | 0 .../project.json | 0 .../Program.cs | 0 .../project.json | 0 .../Program.cs | 0 .../project.json | 0 .../Program.cs | 0 .../project.json | 0 .../GivenAProjectDependenciesCommandFactory.cs | 10 +++++----- .../GivenAProjectDependencyCommandResolver.cs | 2 +- .../PublishAppWithBuildDependency.cs | 4 ++-- test/dotnet.Tests/PackagedCommandTests.cs | 12 ++++++------ 17 files changed, 14 insertions(+), 14 deletions(-) rename TestAssets/DesktopTestProjects/{AppWithDirectDependencyDesktopAndPortable => AppWithDirectDepDesktopAndPortable}/.noautobuild (100%) rename TestAssets/DesktopTestProjects/{AppWithDirectDependencyDesktopAndPortable => AppWithDirectDepDesktopAndPortable}/Program.cs (100%) rename TestAssets/DesktopTestProjects/{AppWithDirectDependencyDesktopAndPortable => AppWithDirectDepDesktopAndPortable}/project.json (100%) rename TestAssets/TestProjects/{AppWithDependencyOnToolWithOutputName => AppWithDepOnToolWithOutputName}/Program.cs (100%) rename TestAssets/TestProjects/{AppWithDependencyOnToolWithOutputName => AppWithDepOnToolWithOutputName}/project.json (100%) rename TestAssets/TestProjects/{AppWithDirectAndToolDependency => AppWithDirectAndToolDep}/Program.cs (100%) rename TestAssets/TestProjects/{AppWithDirectAndToolDependency => AppWithDirectAndToolDep}/project.json (100%) rename TestAssets/TestProjects/{AppWithDirectDependency => AppWithDirectDep}/Program.cs (100%) rename TestAssets/TestProjects/{AppWithDirectDependency => AppWithDirectDep}/project.json (100%) rename TestAssets/TestProjects/{AppWithDirectDependencyAndTypeBuild => AppWithDirectDepAndTypeBuild}/Program.cs (100%) rename TestAssets/TestProjects/{AppWithDirectDependencyAndTypeBuild => AppWithDirectDepAndTypeBuild}/project.json (100%) rename TestAssets/TestProjects/{AppWithDirectDependencyWithOutputName => AppWithDirectDepWithOutputName}/Program.cs (100%) rename TestAssets/TestProjects/{AppWithDirectDependencyWithOutputName => AppWithDirectDepWithOutputName}/project.json (100%) diff --git a/TestAssets/DesktopTestProjects/AppWithDirectDependencyDesktopAndPortable/.noautobuild b/TestAssets/DesktopTestProjects/AppWithDirectDepDesktopAndPortable/.noautobuild similarity index 100% rename from TestAssets/DesktopTestProjects/AppWithDirectDependencyDesktopAndPortable/.noautobuild rename to TestAssets/DesktopTestProjects/AppWithDirectDepDesktopAndPortable/.noautobuild diff --git a/TestAssets/DesktopTestProjects/AppWithDirectDependencyDesktopAndPortable/Program.cs b/TestAssets/DesktopTestProjects/AppWithDirectDepDesktopAndPortable/Program.cs similarity index 100% rename from TestAssets/DesktopTestProjects/AppWithDirectDependencyDesktopAndPortable/Program.cs rename to TestAssets/DesktopTestProjects/AppWithDirectDepDesktopAndPortable/Program.cs diff --git a/TestAssets/DesktopTestProjects/AppWithDirectDependencyDesktopAndPortable/project.json b/TestAssets/DesktopTestProjects/AppWithDirectDepDesktopAndPortable/project.json similarity index 100% rename from TestAssets/DesktopTestProjects/AppWithDirectDependencyDesktopAndPortable/project.json rename to TestAssets/DesktopTestProjects/AppWithDirectDepDesktopAndPortable/project.json diff --git a/TestAssets/TestProjects/AppWithDependencyOnToolWithOutputName/Program.cs b/TestAssets/TestProjects/AppWithDepOnToolWithOutputName/Program.cs similarity index 100% rename from TestAssets/TestProjects/AppWithDependencyOnToolWithOutputName/Program.cs rename to TestAssets/TestProjects/AppWithDepOnToolWithOutputName/Program.cs diff --git a/TestAssets/TestProjects/AppWithDependencyOnToolWithOutputName/project.json b/TestAssets/TestProjects/AppWithDepOnToolWithOutputName/project.json similarity index 100% rename from TestAssets/TestProjects/AppWithDependencyOnToolWithOutputName/project.json rename to TestAssets/TestProjects/AppWithDepOnToolWithOutputName/project.json diff --git a/TestAssets/TestProjects/AppWithDirectAndToolDependency/Program.cs b/TestAssets/TestProjects/AppWithDirectAndToolDep/Program.cs similarity index 100% rename from TestAssets/TestProjects/AppWithDirectAndToolDependency/Program.cs rename to TestAssets/TestProjects/AppWithDirectAndToolDep/Program.cs diff --git a/TestAssets/TestProjects/AppWithDirectAndToolDependency/project.json b/TestAssets/TestProjects/AppWithDirectAndToolDep/project.json similarity index 100% rename from TestAssets/TestProjects/AppWithDirectAndToolDependency/project.json rename to TestAssets/TestProjects/AppWithDirectAndToolDep/project.json diff --git a/TestAssets/TestProjects/AppWithDirectDependency/Program.cs b/TestAssets/TestProjects/AppWithDirectDep/Program.cs similarity index 100% rename from TestAssets/TestProjects/AppWithDirectDependency/Program.cs rename to TestAssets/TestProjects/AppWithDirectDep/Program.cs diff --git a/TestAssets/TestProjects/AppWithDirectDependency/project.json b/TestAssets/TestProjects/AppWithDirectDep/project.json similarity index 100% rename from TestAssets/TestProjects/AppWithDirectDependency/project.json rename to TestAssets/TestProjects/AppWithDirectDep/project.json diff --git a/TestAssets/TestProjects/AppWithDirectDependencyAndTypeBuild/Program.cs b/TestAssets/TestProjects/AppWithDirectDepAndTypeBuild/Program.cs similarity index 100% rename from TestAssets/TestProjects/AppWithDirectDependencyAndTypeBuild/Program.cs rename to TestAssets/TestProjects/AppWithDirectDepAndTypeBuild/Program.cs diff --git a/TestAssets/TestProjects/AppWithDirectDependencyAndTypeBuild/project.json b/TestAssets/TestProjects/AppWithDirectDepAndTypeBuild/project.json similarity index 100% rename from TestAssets/TestProjects/AppWithDirectDependencyAndTypeBuild/project.json rename to TestAssets/TestProjects/AppWithDirectDepAndTypeBuild/project.json diff --git a/TestAssets/TestProjects/AppWithDirectDependencyWithOutputName/Program.cs b/TestAssets/TestProjects/AppWithDirectDepWithOutputName/Program.cs similarity index 100% rename from TestAssets/TestProjects/AppWithDirectDependencyWithOutputName/Program.cs rename to TestAssets/TestProjects/AppWithDirectDepWithOutputName/Program.cs diff --git a/TestAssets/TestProjects/AppWithDirectDependencyWithOutputName/project.json b/TestAssets/TestProjects/AppWithDirectDepWithOutputName/project.json similarity index 100% rename from TestAssets/TestProjects/AppWithDirectDependencyWithOutputName/project.json rename to TestAssets/TestProjects/AppWithDirectDepWithOutputName/project.json diff --git a/test/Microsoft.DotNet.Cli.Utils.Tests/GivenAProjectDependenciesCommandFactory.cs b/test/Microsoft.DotNet.Cli.Utils.Tests/GivenAProjectDependenciesCommandFactory.cs index e89dc34d8..af6423a86 100644 --- a/test/Microsoft.DotNet.Cli.Utils.Tests/GivenAProjectDependenciesCommandFactory.cs +++ b/test/Microsoft.DotNet.Cli.Utils.Tests/GivenAProjectDependenciesCommandFactory.cs @@ -21,7 +21,7 @@ namespace Microsoft.DotNet.Cli.Utils.Tests var configuration = "Debug"; var testAssetManager = new TestAssetsManager(Path.Combine(RepoRoot, "TestAssets", "DesktopTestProjects")); - var testInstance = testAssetManager.CreateTestInstance("AppWithDirectDependencyDesktopAndPortable") + var testInstance = testAssetManager.CreateTestInstance("AppWithDirectDepDesktopAndPortable") .WithLockFiles(); var buildCommand = new BuildCommand( @@ -52,7 +52,7 @@ namespace Microsoft.DotNet.Cli.Utils.Tests var configuration = "Debug"; var testAssetManager = new TestAssetsManager(Path.Combine(RepoRoot, "TestAssets", "DesktopTestProjects")); - var testInstance = testAssetManager.CreateTestInstance("AppWithDirectDependencyDesktopAndPortable") + var testInstance = testAssetManager.CreateTestInstance("AppWithDirectDepDesktopAndPortable") .WithLockFiles(); var buildCommand = new BuildCommand( @@ -83,7 +83,7 @@ namespace Microsoft.DotNet.Cli.Utils.Tests var configuration = "Release"; var testAssetManager = new TestAssetsManager(Path.Combine(RepoRoot, "TestAssets", "DesktopTestProjects")); - var testInstance = testAssetManager.CreateTestInstance("AppWithDirectDependencyDesktopAndPortable") + var testInstance = testAssetManager.CreateTestInstance("AppWithDirectDepDesktopAndPortable") .WithLockFiles(); var buildCommand = new BuildCommand( @@ -114,7 +114,7 @@ namespace Microsoft.DotNet.Cli.Utils.Tests var configuration = "Release"; var testAssetManager = new TestAssetsManager(Path.Combine(RepoRoot, "TestAssets", "DesktopTestProjects")); - var testInstance = testAssetManager.CreateTestInstance("AppWithDirectDependencyDesktopAndPortable") + var testInstance = testAssetManager.CreateTestInstance("AppWithDirectDepDesktopAndPortable") .WithLockFiles(); var buildCommand = new BuildCommand( @@ -145,7 +145,7 @@ namespace Microsoft.DotNet.Cli.Utils.Tests var configuration = "Debug"; var testAssetManager = new TestAssetsManager(Path.Combine(RepoRoot, "TestAssets", "TestProjects")); - var testInstance = testAssetManager.CreateTestInstance("AppWithDirectDependencyWithOutputName") + var testInstance = testAssetManager.CreateTestInstance("AppWithDirectDepWithOutputName") .WithLockFiles(); var buildCommand = new BuildCommand( diff --git a/test/Microsoft.DotNet.Cli.Utils.Tests/GivenAProjectDependencyCommandResolver.cs b/test/Microsoft.DotNet.Cli.Utils.Tests/GivenAProjectDependencyCommandResolver.cs index 7d30b2db4..b31838b92 100644 --- a/test/Microsoft.DotNet.Cli.Utils.Tests/GivenAProjectDependencyCommandResolver.cs +++ b/test/Microsoft.DotNet.Cli.Utils.Tests/GivenAProjectDependencyCommandResolver.cs @@ -15,7 +15,7 @@ namespace Microsoft.DotNet.Cli.Utils.Tests public class GivenAProjectDependenciesCommandResolver : TestBase { - private const string TestProjectName = "AppWithDirectDependency"; + private const string TestProjectName = "AppWithDirectDep"; [Fact] public void It_returns_null_when_CommandName_is_null() diff --git a/test/dotnet-publish.Tests/PublishAppWithBuildDependency.cs b/test/dotnet-publish.Tests/PublishAppWithBuildDependency.cs index b94cf8640..6551ade0e 100644 --- a/test/dotnet-publish.Tests/PublishAppWithBuildDependency.cs +++ b/test/dotnet-publish.Tests/PublishAppWithBuildDependency.cs @@ -14,7 +14,7 @@ namespace Microsoft.DotNet.Tools.Publish.Tests [Fact] public void PublishExcludesBuildDependencies() { - var testInstance = TestAssetsManager.CreateTestInstance("AppWithDirectDependencyAndTypeBuild") + var testInstance = TestAssetsManager.CreateTestInstance("AppWithDirectDepAndTypeBuild") .WithLockFiles(); var publishCommand = new PublishCommand(testInstance.TestRoot); @@ -37,7 +37,7 @@ namespace Microsoft.DotNet.Tools.Publish.Tests // Check the deps file var reader = new DependencyContextJsonReader(); DependencyContext context; - using (var file = File.OpenRead(Path.Combine(publishDir.FullName, "AppWithDirectDependencyAndTypeBuild.deps.json"))) + using (var file = File.OpenRead(Path.Combine(publishDir.FullName, "AppWithDirectDepAndTypeBuild.deps.json"))) { context = reader.Read(file); } diff --git a/test/dotnet.Tests/PackagedCommandTests.cs b/test/dotnet.Tests/PackagedCommandTests.cs index 3b209cbc6..bf324348a 100644 --- a/test/dotnet.Tests/PackagedCommandTests.cs +++ b/test/dotnet.Tests/PackagedCommandTests.cs @@ -23,7 +23,7 @@ namespace Microsoft.DotNet.Tests get { var rid = RuntimeEnvironmentRidExtensions.GetLegacyRestoreRuntimeIdentifier(); - var projectOutputPath = $"AppWithDirectDependencyDesktopAndPortable\\bin\\Debug\\net451\\{rid}\\dotnet-desktop-and-portable.exe"; + var projectOutputPath = $"AppWithDirectDepDesktopAndPortable\\bin\\Debug\\net451\\{rid}\\dotnet-desktop-and-portable.exe"; return new[] { new object[] { "CoreFX", ".NETCoreApp,Version=v1.0", "lib\\netcoreapp1.0\\dotnet-desktop-and-portable.dll", true }, @@ -47,7 +47,7 @@ namespace Microsoft.DotNet.Tests } [Theory] - [InlineData("AppWithDirectAndToolDependency")] + [InlineData("AppWithDirectAndToolDep")] [InlineData("AppWithToolDependency")] public void TestProjectToolIsAvailableThroughDriver(string appName) { @@ -74,7 +74,7 @@ namespace Microsoft.DotNet.Tests public void CanInvokeToolWhosePackageNameIsDifferentFromDllName() { var testInstance = TestAssetsManager - .CreateTestInstance("AppWithDependencyOnToolWithOutputName") + .CreateTestInstance("AppWithDepOnToolWithOutputName") .WithLockFiles(); var appDirectory = testInstance.Path; @@ -96,7 +96,7 @@ namespace Microsoft.DotNet.Tests public void CanInvokeToolFromDirectDependenciesIfPackageNameDifferentFromToolName() { var testInstance = TestAssetsManager - .CreateTestInstance("AppWithDirectDependencyWithOutputName") + .CreateTestInstance("AppWithDirectDepWithOutputName") .WithBuildArtifacts() .WithLockFiles(); @@ -127,7 +127,7 @@ namespace Microsoft.DotNet.Tests } var testInstance = _desktopTestAssetsManager - .CreateTestInstance("AppWithDirectDependencyDesktopAndPortable", identifier: identifier) + .CreateTestInstance("AppWithDirectDepDesktopAndPortable", identifier: identifier) .WithBuildArtifacts() .WithLockFiles(); @@ -192,7 +192,7 @@ namespace Microsoft.DotNet.Tests public void TestProjectDependencyIsNotAvailableThroughDriver() { var testInstance = TestAssetsManager - .CreateTestInstance("AppWithDirectDependency") + .CreateTestInstance("AppWithDirectDep") .WithLockFiles(); var appDirectory = testInstance.Path; From aacc30d5d83c95978e556cbeee696ce62d5e16b3 Mon Sep 17 00:00:00 2001 From: Joel Verhagen Date: Tue, 9 Aug 2016 16:17:10 -0700 Subject: [PATCH 12/18] Add "path" property the .deps.json file for libraries Update DependencyModel and PlatformAbstractions packages to 1.0.1-beta-000917 Update dotnet-test-xunit to 1.0.0-rc2-330423-54 --- .../project.json | 2 +- .../DependencyContextValidator/project.json | 2 +- .../MultipleFrameworkProject/project.json | 2 +- .../NetCoreAppOnlyProject/project.json | 2 +- .../project.json | 2 +- build_projects/dotnet-cli-build/project.json | 2 +- .../shared-build-targets-utils/project.json | 2 +- src/Microsoft.DotNet.Cli.Utils/project.json | 2 +- .../project.json | 2 +- .../DependencyContextBuilder.cs | 24 +++- .../Graph/LockFilePackageLibrary.cs | 2 + .../Graph/LockFileReader.cs | 11 +- .../MSBuildProjectDescription.cs | 1 - .../ProjectDescription.cs | 3 +- .../project.json | 4 +- src/dotnet/project.json | 2 +- test/ArgumentForwardingTests/project.json | 4 +- test/EndToEnd/project.json | 4 +- test/Kestrel.Tests/project.json | 2 +- .../project.json | 4 +- .../project.json | 2 +- .../project.json | 2 +- .../project.json | 2 +- .../LockFileReaderTests.cs | 120 ++++++++++++++++++ .../PackageDependencyProviderTests.cs | 44 ++++++- .../project.json | 2 +- .../project.json | 4 +- test/Performance/project.json | 2 +- test/ScriptExecutorTests/project.json | 2 +- .../project.json | 2 +- .../project.json | 2 +- test/binding-redirects.Tests/project.json | 2 +- test/crossgen.Tests/project.json | 2 +- test/dotnet-build3.Tests/project.json | 2 +- test/dotnet-compile-fsc.Tests/project.json | 2 +- test/dotnet-compile.Tests/project.json | 2 +- test/dotnet-compile.UnitTests/project.json | 2 +- test/dotnet-new.Tests/project.json | 2 +- test/dotnet-pack.Tests/project.json | 2 +- test/dotnet-publish.Tests/project.json | 2 +- test/dotnet-resgen.Tests/project.json | 2 +- test/dotnet-run.Tests/project.json | 2 +- test/dotnet-run.UnitTests/project.json | 2 +- test/dotnet-test.Tests/project.json | 4 +- test/dotnet-test.UnitTests/project.json | 2 +- test/dotnet.Tests/project.json | 4 +- 46 files changed, 238 insertions(+), 59 deletions(-) create mode 100644 test/Microsoft.DotNet.ProjectModel.Tests/LockFileReaderTests.cs diff --git a/TestAssets/TestPackages/dotnet-dependency-context-test/project.json b/TestAssets/TestPackages/dotnet-dependency-context-test/project.json index 851cd35b3..923174966 100644 --- a/TestAssets/TestPackages/dotnet-dependency-context-test/project.json +++ b/TestAssets/TestPackages/dotnet-dependency-context-test/project.json @@ -8,7 +8,7 @@ "type": "platform", "version": "1.0.0" }, - "Microsoft.Extensions.DependencyModel": "1.0.1-beta-000914" + "Microsoft.Extensions.DependencyModel": "1.0.1-beta-000919" }, "frameworks": { "netcoreapp1.0": { diff --git a/TestAssets/TestProjects/DependencyContextValidator/DependencyContextValidator/project.json b/TestAssets/TestProjects/DependencyContextValidator/DependencyContextValidator/project.json index d0557799a..7ef8495d1 100644 --- a/TestAssets/TestProjects/DependencyContextValidator/DependencyContextValidator/project.json +++ b/TestAssets/TestProjects/DependencyContextValidator/DependencyContextValidator/project.json @@ -1,7 +1,7 @@ { "version": "1.0.0-*", "dependencies": { - "Microsoft.Extensions.DependencyModel": "1.0.1-beta-003395" + "Microsoft.Extensions.DependencyModel": "1.0.1-beta-000919" }, "frameworks": { "netstandard1.6": { diff --git a/TestAssets/TestProjects/ProjectsWithTests/MultipleFrameworkProject/project.json b/TestAssets/TestProjects/ProjectsWithTests/MultipleFrameworkProject/project.json index d8ae3f3a0..cd805736b 100644 --- a/TestAssets/TestProjects/ProjectsWithTests/MultipleFrameworkProject/project.json +++ b/TestAssets/TestProjects/ProjectsWithTests/MultipleFrameworkProject/project.json @@ -1,7 +1,7 @@ { "version": "1.0.0-*", "dependencies": { - "dotnet-test-xunit": "1.0.0-rc2-318883-21", + "dotnet-test-xunit": "1.0.0-rc2-330423-54", "xunit": "2.2.0-beta3-build3330" }, "frameworks": { diff --git a/TestAssets/TestProjects/ProjectsWithTests/NetCoreAppOnlyProject/project.json b/TestAssets/TestProjects/ProjectsWithTests/NetCoreAppOnlyProject/project.json index 84c58b6d9..0a2d7566e 100644 --- a/TestAssets/TestProjects/ProjectsWithTests/NetCoreAppOnlyProject/project.json +++ b/TestAssets/TestProjects/ProjectsWithTests/NetCoreAppOnlyProject/project.json @@ -8,7 +8,7 @@ "System.Linq.Expressions": "4.1.0", "System.Runtime.Serialization.Primitives": "4.1.1", "xunit": "2.2.0-beta3-build3330", - "dotnet-test-xunit": "1.0.0-rc2-318883-21", + "dotnet-test-xunit": "1.0.0-rc2-330423-54", "Microsoft.DotNet.InternalAbstractions": { "target": "project" } diff --git a/build_projects/Microsoft.DotNet.Cli.Build.Framework/project.json b/build_projects/Microsoft.DotNet.Cli.Build.Framework/project.json index 566e7f10a..84084daad 100644 --- a/build_projects/Microsoft.DotNet.Cli.Build.Framework/project.json +++ b/build_projects/Microsoft.DotNet.Cli.Build.Framework/project.json @@ -8,7 +8,7 @@ "NETStandard.Library": "1.6.0", "System.Diagnostics.Process": "4.1.0", "System.Reflection.TypeExtensions": "4.1.0", - "Microsoft.DotNet.PlatformAbstractions": "1.0.1-beta-000914" + "Microsoft.DotNet.PlatformAbstractions": "1.0.1-beta-000919" }, "frameworks": { "netstandard1.5": { diff --git a/build_projects/dotnet-cli-build/project.json b/build_projects/dotnet-cli-build/project.json index 5f85f156e..90aa1e96d 100644 --- a/build_projects/dotnet-cli-build/project.json +++ b/build_projects/dotnet-cli-build/project.json @@ -23,7 +23,7 @@ "NuGet.CommandLine.XPlat": "3.6.0-beta.1.msbuild.1", "Microsoft.Build.Framework": "0.1.0-preview-00029-160805", "Microsoft.Build.Utilities.Core": "0.1.0-preview-00029-160805", - "Microsoft.DotNet.PlatformAbstractions": "1.0.1-beta-000914" + "Microsoft.DotNet.PlatformAbstractions": "1.0.1-beta-000919" }, "frameworks": { "netcoreapp1.0": { diff --git a/build_projects/shared-build-targets-utils/project.json b/build_projects/shared-build-targets-utils/project.json index 66392ed1c..71e28943a 100644 --- a/build_projects/shared-build-targets-utils/project.json +++ b/build_projects/shared-build-targets-utils/project.json @@ -12,7 +12,7 @@ "Microsoft.DotNet.Cli.Build.Framework": { "target": "project" }, - "Microsoft.DotNet.PlatformAbstractions": "1.0.1-beta-000914" + "Microsoft.DotNet.PlatformAbstractions": "1.0.1-beta-000919" }, "frameworks": { "netstandard1.6": { diff --git a/src/Microsoft.DotNet.Cli.Utils/project.json b/src/Microsoft.DotNet.Cli.Utils/project.json index a6939ef41..e9e57f328 100644 --- a/src/Microsoft.DotNet.Cli.Utils/project.json +++ b/src/Microsoft.DotNet.Cli.Utils/project.json @@ -8,7 +8,7 @@ "Microsoft.DotNet.ProjectModel": { "target": "project" }, - "Microsoft.DotNet.PlatformAbstractions": "1.0.1-beta-000914", + "Microsoft.DotNet.PlatformAbstractions": "1.0.1-beta-000919", "NuGet.Versioning": "3.6.0-beta.1.msbuild.1", "NuGet.Packaging": "3.6.0-beta.1.msbuild.1", "NuGet.Frameworks": "3.6.0-beta.1.msbuild.1", diff --git a/src/Microsoft.DotNet.ProjectModel.Workspaces/project.json b/src/Microsoft.DotNet.ProjectModel.Workspaces/project.json index 6fb698bf3..8980f698e 100644 --- a/src/Microsoft.DotNet.ProjectModel.Workspaces/project.json +++ b/src/Microsoft.DotNet.ProjectModel.Workspaces/project.json @@ -11,7 +11,7 @@ "target": "project" }, "Microsoft.CodeAnalysis.CSharp.Workspaces": "1.3.0", - "Microsoft.DotNet.PlatformAbstractions": "1.0.1-beta-000914" + "Microsoft.DotNet.PlatformAbstractions": "1.0.1-beta-000919" }, "frameworks": { "net451": { diff --git a/src/Microsoft.DotNet.ProjectModel/DependencyContextBuilder.cs b/src/Microsoft.DotNet.ProjectModel/DependencyContextBuilder.cs index 1800eb7b2..44fb20fbb 100644 --- a/src/Microsoft.DotNet.ProjectModel/DependencyContextBuilder.cs +++ b/src/Microsoft.DotNet.ProjectModel/DependencyContextBuilder.cs @@ -146,8 +146,8 @@ namespace Microsoft.Extensions.DependencyModel export.NativeLibraryGroups.Select(CreateRuntimeAssetGroup).ToArray(), export.ResourceAssemblies.Select(CreateResourceAssembly), libraryDependencies, - serviceable - ); + serviceable, + GetLibraryPath(export.Library)); } else { @@ -168,10 +168,28 @@ namespace Microsoft.Extensions.DependencyModel export.Library.Hash, assemblies, libraryDependencies, - serviceable); + serviceable, + GetLibraryPath(export.Library)); } } + private string GetLibraryPath(LibraryDescription description) + { + var packageDescription = description as PackageDescription; + + if (packageDescription != null) + { + // This is the relative path appended to a NuGet packages directory to find the directory containing + // the package assets. This string should mastered only byNuGet, but has the format: + // {lowercase-package-ID}/{lowercase-package-version} + // + // For example: newtonsoft.json/9.0.1 + return packageDescription.PackageLibrary?.Path; + } + + return null; + } + private RuntimeAssetGroup CreateRuntimeAssetGroup(LibraryAssetGroup libraryAssetGroup) { return new RuntimeAssetGroup( diff --git a/src/Microsoft.DotNet.ProjectModel/Graph/LockFilePackageLibrary.cs b/src/Microsoft.DotNet.ProjectModel/Graph/LockFilePackageLibrary.cs index f8c2d2986..16504536a 100644 --- a/src/Microsoft.DotNet.ProjectModel/Graph/LockFilePackageLibrary.cs +++ b/src/Microsoft.DotNet.ProjectModel/Graph/LockFilePackageLibrary.cs @@ -17,5 +17,7 @@ namespace Microsoft.DotNet.ProjectModel.Graph public string Sha512 { get; set; } public IList Files { get; set; } = new List(); + + public string Path { get; set; } } } diff --git a/src/Microsoft.DotNet.ProjectModel/Graph/LockFileReader.cs b/src/Microsoft.DotNet.ProjectModel/Graph/LockFileReader.cs index eff31f509..153fbb3ba 100644 --- a/src/Microsoft.DotNet.ProjectModel/Graph/LockFileReader.cs +++ b/src/Microsoft.DotNet.ProjectModel/Graph/LockFileReader.cs @@ -144,6 +144,9 @@ namespace Microsoft.DotNet.ProjectModel.Graph var type = _symbols.GetString(value.Value("type")); + var pathValue = value["path"]; + var path = pathValue == null ? null : ReadString(pathValue); + if (type == null || string.Equals(type, "package", StringComparison.OrdinalIgnoreCase)) { lockFile.PackageLibraries.Add(new LockFilePackageLibrary @@ -152,7 +155,8 @@ namespace Microsoft.DotNet.ProjectModel.Graph Version = version, IsServiceable = ReadBool(value, "serviceable", defaultValue: false), Sha512 = ReadString(value["sha512"]), - Files = ReadPathArray(value["files"], ReadString) + Files = ReadPathArray(value["files"], ReadString), + Path = path }); } else if (type == "project") @@ -162,9 +166,8 @@ namespace Microsoft.DotNet.ProjectModel.Graph Name = name, Version = version }; - - var pathValue = value["path"]; - projectLibrary.Path = pathValue == null ? null : ReadString(pathValue); + + projectLibrary.Path = path; var buildTimeDependencyValue = value["msbuildProject"]; projectLibrary.MSBuildProject = buildTimeDependencyValue == null ? null : ReadString(buildTimeDependencyValue); diff --git a/src/Microsoft.DotNet.ProjectModel/MSBuildProjectDescription.cs b/src/Microsoft.DotNet.ProjectModel/MSBuildProjectDescription.cs index 71e613ea4..85c26a49f 100644 --- a/src/Microsoft.DotNet.ProjectModel/MSBuildProjectDescription.cs +++ b/src/Microsoft.DotNet.ProjectModel/MSBuildProjectDescription.cs @@ -2,7 +2,6 @@ // Licensed under the MIT license. See LICENSE file in the project root for full license information. using System.Collections.Generic; -using System.Linq; using Microsoft.DotNet.ProjectModel.Graph; namespace Microsoft.DotNet.ProjectModel diff --git a/src/Microsoft.DotNet.ProjectModel/ProjectDescription.cs b/src/Microsoft.DotNet.ProjectModel/ProjectDescription.cs index 1c841b284..d5e7511ce 100644 --- a/src/Microsoft.DotNet.ProjectModel/ProjectDescription.cs +++ b/src/Microsoft.DotNet.ProjectModel/ProjectDescription.cs @@ -19,7 +19,8 @@ namespace Microsoft.DotNet.ProjectModel framework: null, resolved: false, compatible: false) - { } + { + } public ProjectDescription( LibraryRange libraryRange, diff --git a/src/Microsoft.DotNet.ProjectModel/project.json b/src/Microsoft.DotNet.ProjectModel/project.json index f1b014783..e5af564d4 100644 --- a/src/Microsoft.DotNet.ProjectModel/project.json +++ b/src/Microsoft.DotNet.ProjectModel/project.json @@ -5,8 +5,8 @@ }, "description": "Types to model a .NET Project", "dependencies": { - "Microsoft.Extensions.DependencyModel": "1.0.1-beta-000914", - "Microsoft.DotNet.PlatformAbstractions": "1.0.1-beta-000914", + "Microsoft.Extensions.DependencyModel": "1.0.1-beta-000919", + "Microsoft.DotNet.PlatformAbstractions": "1.0.1-beta-000919", "Newtonsoft.Json": "9.0.1", "NuGet.Configuration": "3.6.0-beta.1.msbuild.1", "NuGet.Packaging": "3.6.0-beta.1.msbuild.1", diff --git a/src/dotnet/project.json b/src/dotnet/project.json index 11c55dcbb..4cf3dcd61 100644 --- a/src/dotnet/project.json +++ b/src/dotnet/project.json @@ -63,7 +63,7 @@ "Microsoft.Build": "0.1.0-preview-00029-160805", "Microsoft.Build.Framework": "0.1.0-preview-00029-160805", - "Microsoft.DotNet.PlatformAbstractions": "1.0.1-beta-000914" + "Microsoft.DotNet.PlatformAbstractions": "1.0.1-beta-000919" }, "frameworks": { "netcoreapp1.0": { diff --git a/test/ArgumentForwardingTests/project.json b/test/ArgumentForwardingTests/project.json index ae0a55287..192170298 100644 --- a/test/ArgumentForwardingTests/project.json +++ b/test/ArgumentForwardingTests/project.json @@ -19,8 +19,8 @@ "target": "project" }, "xunit": "2.2.0-beta3-build3330", - "dotnet-test-xunit": "1.0.0-rc2-318883-21", - "Microsoft.DotNet.PlatformAbstractions": "1.0.1-beta-000914" + "dotnet-test-xunit": "1.0.0-rc2-330423-54", + "Microsoft.DotNet.PlatformAbstractions": "1.0.1-beta-000919" }, "frameworks": { "netcoreapp1.0": { diff --git a/test/EndToEnd/project.json b/test/EndToEnd/project.json index 1c9ded669..2fd327938 100644 --- a/test/EndToEnd/project.json +++ b/test/EndToEnd/project.json @@ -20,8 +20,8 @@ }, "xunit": "2.2.0-beta3-build3330", "xunit.netcore.extensions": "1.0.0-prerelease-00206", - "dotnet-test-xunit": "1.0.0-rc2-318883-21", - "Microsoft.DotNet.PlatformAbstractions": "1.0.1-beta-000914" + "dotnet-test-xunit": "1.0.0-rc2-330423-54", + "Microsoft.DotNet.PlatformAbstractions": "1.0.1-beta-000919" }, "frameworks": { "netcoreapp1.0": { diff --git a/test/Kestrel.Tests/project.json b/test/Kestrel.Tests/project.json index 4efa9e599..733b4d055 100644 --- a/test/Kestrel.Tests/project.json +++ b/test/Kestrel.Tests/project.json @@ -13,7 +13,7 @@ "target": "project" }, "xunit": "2.2.0-beta3-build3330", - "dotnet-test-xunit": "1.0.0-rc2-318883-21" + "dotnet-test-xunit": "1.0.0-rc2-330423-54" }, "frameworks": { "netcoreapp1.0": { diff --git a/test/Microsoft.DotNet.Cli.Utils.Tests/project.json b/test/Microsoft.DotNet.Cli.Utils.Tests/project.json index f398dcc79..8457137a2 100644 --- a/test/Microsoft.DotNet.Cli.Utils.Tests/project.json +++ b/test/Microsoft.DotNet.Cli.Utils.Tests/project.json @@ -35,8 +35,8 @@ }, "moq.netcore": "4.4.0-beta8", "xunit": "2.2.0-beta3-build3330", - "dotnet-test-xunit": "1.0.0-rc2-318883-21", - "Microsoft.DotNet.PlatformAbstractions": "1.0.1-beta-000914" + "dotnet-test-xunit": "1.0.0-rc2-330423-54", + "Microsoft.DotNet.PlatformAbstractions": "1.0.1-beta-000919" }, "frameworks": { "netcoreapp1.0": { diff --git a/test/Microsoft.DotNet.Compiler.Common.Tests/project.json b/test/Microsoft.DotNet.Compiler.Common.Tests/project.json index 69b33d8a4..fd769ac1c 100644 --- a/test/Microsoft.DotNet.Compiler.Common.Tests/project.json +++ b/test/Microsoft.DotNet.Compiler.Common.Tests/project.json @@ -16,7 +16,7 @@ "target": "project" }, "xunit": "2.2.0-beta3-build3330", - "dotnet-test-xunit": "1.0.0-rc2-318883-21" + "dotnet-test-xunit": "1.0.0-rc2-330423-54" }, "frameworks": { "netcoreapp1.0": { diff --git a/test/Microsoft.DotNet.Configurer.UnitTests/project.json b/test/Microsoft.DotNet.Configurer.UnitTests/project.json index f85d1c6a1..c20b10f4a 100644 --- a/test/Microsoft.DotNet.Configurer.UnitTests/project.json +++ b/test/Microsoft.DotNet.Configurer.UnitTests/project.json @@ -21,7 +21,7 @@ "FluentAssertions": "4.0.0", "moq.netcore": "4.4.0-beta8", "xunit": "2.2.0-beta3-build3330", - "dotnet-test-xunit": "1.0.0-rc2-318883-21" + "dotnet-test-xunit": "1.0.0-rc2-330423-54" }, "frameworks": { "netcoreapp1.0": { diff --git a/test/Microsoft.DotNet.ProjectModel.Loader.Tests/project.json b/test/Microsoft.DotNet.ProjectModel.Loader.Tests/project.json index 36e1c8afc..1e4275517 100644 --- a/test/Microsoft.DotNet.ProjectModel.Loader.Tests/project.json +++ b/test/Microsoft.DotNet.ProjectModel.Loader.Tests/project.json @@ -15,7 +15,7 @@ "target": "project" }, "xunit": "2.2.0-beta3-build3330", - "dotnet-test-xunit": "1.0.0-rc2-318883-21" + "dotnet-test-xunit": "1.0.0-rc2-330423-54" }, "frameworks": { "netcoreapp1.0": { diff --git a/test/Microsoft.DotNet.ProjectModel.Tests/LockFileReaderTests.cs b/test/Microsoft.DotNet.ProjectModel.Tests/LockFileReaderTests.cs new file mode 100644 index 000000000..0d295063f --- /dev/null +++ b/test/Microsoft.DotNet.ProjectModel.Tests/LockFileReaderTests.cs @@ -0,0 +1,120 @@ +// 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.IO; +using System.Linq; +using System.Text; +using FluentAssertions; +using Microsoft.DotNet.ProjectModel.Graph; +using Microsoft.DotNet.Tools.Test.Utilities; +using Xunit; + +namespace Microsoft.DotNet.ProjectModel.Tests +{ + public class LockFileReaderTests : TestBase + { + [Fact] + public void ReadsAllLibraryPropertiesWhenPathIsPresent() + { + // Arrange + var lockFileJson = @" + { + ""libraries"": { + ""PackageA/1.0.1-Alpha"": { + ""sha512"": ""FAKE-HASH"", + ""type"": ""package"", + ""serviceable"": true, + ""files"": [ + ""a.txt"", + ""foo/b.txt"" + ], + ""path"": ""PackageA/1.0.1-beta-PATH"" + }, + ""ProjectA/1.0.2-Beta"": { + ""type"": ""project"", + ""path"": ""ProjectA-PATH"", + ""msbuildProject"": ""some-msbuild"" + } + } + }"; + + var lockFileStream = new MemoryStream(Encoding.UTF8.GetBytes(lockFileJson)); + var lockFileReader = new LockFileReader(); + + // Act + var lockFile = lockFileReader.ReadLockFile( + lockFilePath: null, + stream: lockFileStream, + designTime: true); + + // Assert + lockFile.PackageLibraries.Should().HaveCount(1); + var package = lockFile.PackageLibraries.First(); + package.Name.Should().Be("PackageA"); + package.Version.ToString().Should().Be("1.0.1-Alpha"); + package.Sha512.Should().Be("FAKE-HASH"); + package.IsServiceable.Should().BeTrue(); + package.Files.Should().HaveCount(2); + package.Files[0].Should().Be("a.txt"); + package.Files[1].Should().Be(Path.Combine("foo", "b.txt")); + package.Path.Should().Be("PackageA/1.0.1-beta-PATH"); + + lockFile.ProjectLibraries.Should().HaveCount(1); + var project = lockFile.ProjectLibraries.First(); + project.Name.Should().Be("ProjectA"); + project.Version.ToString().Should().Be("1.0.2-Beta"); + project.Path.Should().Be("ProjectA-PATH"); + } + + [Fact] + public void ReadsAllLibraryPropertiesWhenPathIsNotPresent() + { + // Arrange + var lockFileJson = @" + { + ""libraries"": { + ""PackageA/1.0.1-Alpha"": { + ""sha512"": ""FAKE-HASH"", + ""type"": ""package"", + ""serviceable"": true, + ""files"": [ + ""a.txt"", + ""foo/b.txt"" + ] + }, + ""ProjectA/1.0.2-Beta"": { + ""type"": ""project"", + ""msbuildProject"": ""some-msbuild"" + } + } + }"; + + var lockFileStream = new MemoryStream(Encoding.UTF8.GetBytes(lockFileJson)); + var lockFileReader = new LockFileReader(); + + // Act + var lockFile = lockFileReader.ReadLockFile( + lockFilePath: null, + stream: lockFileStream, + designTime: true); + + // Assert + lockFile.PackageLibraries.Should().HaveCount(1); + var package = lockFile.PackageLibraries.First(); + package.Name.Should().Be("PackageA"); + package.Version.ToString().Should().Be("1.0.1-Alpha"); + package.Sha512.Should().Be("FAKE-HASH"); + package.IsServiceable.Should().BeTrue(); + package.Files.Should().HaveCount(2); + package.Files[0].Should().Be("a.txt"); + package.Files[1].Should().Be(Path.Combine("foo", "b.txt")); + package.Path.Should().BeNull(); + + lockFile.ProjectLibraries.Should().HaveCount(1); + var project = lockFile.ProjectLibraries.First(); + project.Name.Should().Be("ProjectA"); + project.Version.ToString().Should().Be("1.0.2-Beta"); + project.Path.Should().BeNull(); + } + } +} diff --git a/test/Microsoft.DotNet.ProjectModel.Tests/PackageDependencyProviderTests.cs b/test/Microsoft.DotNet.ProjectModel.Tests/PackageDependencyProviderTests.cs index 59499f8bc..8b3acb455 100644 --- a/test/Microsoft.DotNet.ProjectModel.Tests/PackageDependencyProviderTests.cs +++ b/test/Microsoft.DotNet.ProjectModel.Tests/PackageDependencyProviderTests.cs @@ -1,5 +1,7 @@ using System; +using System.IO; using System.Linq; +using FluentAssertions; using Microsoft.DotNet.ProjectModel.Graph; using Microsoft.DotNet.ProjectModel.Resolution; using Microsoft.DotNet.TestFramework; @@ -8,16 +10,46 @@ using NuGet.Configuration; using NuGet.Frameworks; using NuGet.Versioning; using Xunit; -using System.IO; namespace Microsoft.DotNet.ProjectModel.Tests { public class PackageDependencyProviderTests : TestBase { + [Fact] + public void GetDescriptionShouldLeavePackageLibraryPathAlone() + { + // Arrange + var provider = new PackageDependencyProvider( + NuGetPathContext.Create("/foo/packages"), + new FrameworkReferenceResolver("/foo/references")); + var package = new LockFilePackageLibrary(); + package.Name = "Something"; + package.Version = NuGetVersion.Parse("1.0.0"); + package.Files.Add("lib/dotnet/_._"); + package.Files.Add("runtimes/any/native/Microsoft.CSharp.CurrentVersion.targets"); + package.Path = "SomePath"; + + var target = new LockFileTargetLibrary(); + target.Name = "Something"; + target.Version = package.Version; + + target.RuntimeAssemblies.Add("lib/dotnet/_._"); + target.CompileTimeAssemblies.Add("lib/dotnet/_._"); + target.NativeLibraries.Add("runtimes/any/native/Microsoft.CSharp.CurrentVersion.targets"); + + // Act + var p = provider.GetDescription(NuGetFramework.Parse("netcoreapp1.0"), package, target); + + // Assert + p.PackageLibrary.Path.Should().Be("SomePath"); + } + [Fact] public void GetDescriptionShouldNotModifyTarget() { - var provider = new PackageDependencyProvider(NuGetPathContext.Create("/foo/packages"), new FrameworkReferenceResolver("/foo/references")); + var provider = new PackageDependencyProvider( + NuGetPathContext.Create("/foo/packages"), + new FrameworkReferenceResolver("/foo/references")); var package = new LockFilePackageLibrary(); package.Name = "Something"; package.Version = NuGetVersion.Parse("1.0.0"); @@ -48,7 +80,9 @@ namespace Microsoft.DotNet.ProjectModel.Tests [Fact] public void HasCompileTimePlaceholderChecksAllCompileTimeAssets() { - var provider = new PackageDependencyProvider(NuGetPathContext.Create("/foo/packages"), new FrameworkReferenceResolver("/foo/references")); + var provider = new PackageDependencyProvider( + NuGetPathContext.Create("/foo/packages"), + new FrameworkReferenceResolver("/foo/references")); var package = new LockFilePackageLibrary(); package.Name = "Something"; package.Version = NuGetVersion.Parse("1.0.0"); @@ -76,7 +110,9 @@ namespace Microsoft.DotNet.ProjectModel.Tests [Fact] public void HasCompileTimePlaceholderReturnsFalseIfEmpty() { - var provider = new PackageDependencyProvider(NuGetPathContext.Create("/foo/packages"), new FrameworkReferenceResolver("/foo/references")); + var provider = new PackageDependencyProvider( + NuGetPathContext.Create("/foo/packages"), + new FrameworkReferenceResolver("/foo/references")); var package = new LockFilePackageLibrary(); package.Name = "Something"; package.Version = NuGetVersion.Parse("1.0.0"); diff --git a/test/Microsoft.DotNet.ProjectModel.Tests/project.json b/test/Microsoft.DotNet.ProjectModel.Tests/project.json index 19416b9e2..672046e5f 100644 --- a/test/Microsoft.DotNet.ProjectModel.Tests/project.json +++ b/test/Microsoft.DotNet.ProjectModel.Tests/project.json @@ -21,7 +21,7 @@ "target": "project" }, "xunit": "2.2.0-beta3-build3330", - "dotnet-test-xunit": "1.0.0-rc2-318883-21" + "dotnet-test-xunit": "1.0.0-rc2-330423-54" }, "frameworks": { "netcoreapp1.0": { diff --git a/test/Microsoft.DotNet.Tools.Tests.Utilities/project.json b/test/Microsoft.DotNet.Tools.Tests.Utilities/project.json index 19ba7bd4a..f84c5703c 100644 --- a/test/Microsoft.DotNet.Tools.Tests.Utilities/project.json +++ b/test/Microsoft.DotNet.Tools.Tests.Utilities/project.json @@ -7,14 +7,14 @@ "dependencies": { "FluentAssertions": "4.0.0", "xunit": "2.2.0-beta3-build3330", - "dotnet-test-xunit": "1.0.0-rc2-318883-21", + "dotnet-test-xunit": "1.0.0-rc2-330423-54", "Microsoft.DotNet.TestFramework": { "target": "project" }, "Microsoft.DotNet.Cli.Utils": { "target": "project" }, "Microsoft.DotNet.ProjectModel": { "target": "project" }, "Microsoft.DotNet.InternalAbstractions": { "target": "project" }, - "Microsoft.DotNet.PlatformAbstractions": "1.0.1-beta-000914" + "Microsoft.DotNet.PlatformAbstractions": "1.0.1-beta-000919" }, "frameworks": { "netcoreapp1.0": { diff --git a/test/Performance/project.json b/test/Performance/project.json index d7f2f52fc..bd470c253 100644 --- a/test/Performance/project.json +++ b/test/Performance/project.json @@ -17,7 +17,7 @@ }, "xunit": "2.2.0-beta3-build3330", "xunit.netcore.extensions": "1.0.0-prerelease-00206", - "dotnet-test-xunit": "1.0.0-rc2-318883-21", + "dotnet-test-xunit": "1.0.0-rc2-330423-54", "Microsoft.DotNet.xunit.performance": "1.0.0-alpha-build0028" }, "frameworks": { diff --git a/test/ScriptExecutorTests/project.json b/test/ScriptExecutorTests/project.json index 9497c376d..be300cc67 100644 --- a/test/ScriptExecutorTests/project.json +++ b/test/ScriptExecutorTests/project.json @@ -15,7 +15,7 @@ "target": "project" }, "xunit": "2.2.0-beta3-build3330", - "dotnet-test-xunit": "1.0.0-rc2-318883-21" + "dotnet-test-xunit": "1.0.0-rc2-330423-54" }, "frameworks": { "netcoreapp1.0": { diff --git a/test/TestingAbstractions/Microsoft.Extensions.Testing.Abstractions.Tests/project.json b/test/TestingAbstractions/Microsoft.Extensions.Testing.Abstractions.Tests/project.json index ff1ff947d..469c0a6ee 100644 --- a/test/TestingAbstractions/Microsoft.Extensions.Testing.Abstractions.Tests/project.json +++ b/test/TestingAbstractions/Microsoft.Extensions.Testing.Abstractions.Tests/project.json @@ -19,7 +19,7 @@ "target": "project" }, "xunit": "2.2.0-beta3-build3330", - "dotnet-test-xunit": "1.0.0-rc2-318883-21", + "dotnet-test-xunit": "1.0.0-rc2-330423-54", "FluentAssertions": "4.2.2" }, "frameworks": { diff --git a/test/TestingAbstractions/Microsoft.Extensions.Testing.Abstractions.UnitTests/project.json b/test/TestingAbstractions/Microsoft.Extensions.Testing.Abstractions.UnitTests/project.json index 725ead2b6..edb88bd59 100644 --- a/test/TestingAbstractions/Microsoft.Extensions.Testing.Abstractions.UnitTests/project.json +++ b/test/TestingAbstractions/Microsoft.Extensions.Testing.Abstractions.UnitTests/project.json @@ -14,7 +14,7 @@ "target": "project" }, "xunit": "2.2.0-beta3-build3330", - "dotnet-test-xunit": "1.0.0-rc2-318883-21", + "dotnet-test-xunit": "1.0.0-rc2-330423-54", "FluentAssertions": "4.2.2", "moq.netcore": "4.4.0-beta8" }, diff --git a/test/binding-redirects.Tests/project.json b/test/binding-redirects.Tests/project.json index b32983d07..93ccef868 100644 --- a/test/binding-redirects.Tests/project.json +++ b/test/binding-redirects.Tests/project.json @@ -2,7 +2,7 @@ "version": "1.0.0-*", "dependencies": { "xunit": "2.2.0-beta3-build3330", - "dotnet-test-xunit": "1.0.0-rc2-318883-21", + "dotnet-test-xunit": "1.0.0-rc2-330423-54", "Microsoft.NETCore.Platforms": "1.0.1", "Microsoft.DotNet.Tools.Tests.Utilities": { "target": "project" diff --git a/test/crossgen.Tests/project.json b/test/crossgen.Tests/project.json index 25d0fcf46..6c69279cb 100644 --- a/test/crossgen.Tests/project.json +++ b/test/crossgen.Tests/project.json @@ -12,7 +12,7 @@ "target": "project" }, "xunit": "2.2.0-beta3-build3330", - "dotnet-test-xunit": "1.0.0-rc2-318883-21" + "dotnet-test-xunit": "1.0.0-rc2-330423-54" }, "frameworks": { "netcoreapp1.0": { diff --git a/test/dotnet-build3.Tests/project.json b/test/dotnet-build3.Tests/project.json index 1d32c9ace..7b5b7830b 100644 --- a/test/dotnet-build3.Tests/project.json +++ b/test/dotnet-build3.Tests/project.json @@ -10,7 +10,7 @@ "target": "project" }, "xunit": "2.2.0-beta3-build3330", - "dotnet-test-xunit": "1.0.0-rc2-318883-21" + "dotnet-test-xunit": "1.0.0-rc2-330423-54" }, "frameworks": { "netcoreapp1.0": { diff --git a/test/dotnet-compile-fsc.Tests/project.json b/test/dotnet-compile-fsc.Tests/project.json index 4b20d150c..91579c3a2 100644 --- a/test/dotnet-compile-fsc.Tests/project.json +++ b/test/dotnet-compile-fsc.Tests/project.json @@ -12,7 +12,7 @@ "target": "project" }, "xunit": "2.2.0-beta3-build3330", - "dotnet-test-xunit": "1.0.0-rc2-318883-21" + "dotnet-test-xunit": "1.0.0-rc2-330423-54" }, "frameworks": { "netcoreapp1.0": { diff --git a/test/dotnet-compile.Tests/project.json b/test/dotnet-compile.Tests/project.json index e2bcbf3b0..b053a48e3 100644 --- a/test/dotnet-compile.Tests/project.json +++ b/test/dotnet-compile.Tests/project.json @@ -13,7 +13,7 @@ "target": "project" }, "xunit": "2.2.0-beta3-build3330", - "dotnet-test-xunit": "1.0.0-rc2-318883-21" + "dotnet-test-xunit": "1.0.0-rc2-330423-54" }, "frameworks": { "netcoreapp1.0": { diff --git a/test/dotnet-compile.UnitTests/project.json b/test/dotnet-compile.UnitTests/project.json index 41d3bac9f..ec6d7fa7c 100644 --- a/test/dotnet-compile.UnitTests/project.json +++ b/test/dotnet-compile.UnitTests/project.json @@ -30,7 +30,7 @@ "target": "project" }, "xunit": "2.2.0-beta3-build3330", - "dotnet-test-xunit": "1.0.0-rc2-318883-21", + "dotnet-test-xunit": "1.0.0-rc2-330423-54", "moq.netcore": "4.4.0-beta8", "FluentAssertions": "4.2.2" }, diff --git a/test/dotnet-new.Tests/project.json b/test/dotnet-new.Tests/project.json index 72cbe7fe2..64946993d 100644 --- a/test/dotnet-new.Tests/project.json +++ b/test/dotnet-new.Tests/project.json @@ -13,7 +13,7 @@ "target": "project" }, "xunit": "2.2.0-beta3-build3330", - "dotnet-test-xunit": "1.0.0-rc2-318883-21" + "dotnet-test-xunit": "1.0.0-rc2-330423-54" }, "frameworks": { "netcoreapp1.0": { diff --git a/test/dotnet-pack.Tests/project.json b/test/dotnet-pack.Tests/project.json index 7accd4a0c..94d115334 100644 --- a/test/dotnet-pack.Tests/project.json +++ b/test/dotnet-pack.Tests/project.json @@ -14,7 +14,7 @@ "target": "project" }, "xunit": "2.2.0-beta3-build3330", - "dotnet-test-xunit": "1.0.0-rc2-318883-21" + "dotnet-test-xunit": "1.0.0-rc2-330423-54" }, "frameworks": { "netcoreapp1.0": { diff --git a/test/dotnet-publish.Tests/project.json b/test/dotnet-publish.Tests/project.json index a7ee7e7e2..53bdcdd23 100644 --- a/test/dotnet-publish.Tests/project.json +++ b/test/dotnet-publish.Tests/project.json @@ -14,7 +14,7 @@ }, "xunit": "2.2.0-beta3-build3330", "xunit.netcore.extensions": "1.0.0-prerelease-00206", - "dotnet-test-xunit": "1.0.0-rc2-318883-21", + "dotnet-test-xunit": "1.0.0-rc2-330423-54", "System.Runtime.InteropServices.RuntimeInformation": "4.0.0" }, "frameworks": { diff --git a/test/dotnet-resgen.Tests/project.json b/test/dotnet-resgen.Tests/project.json index 4f3404432..007b92480 100644 --- a/test/dotnet-resgen.Tests/project.json +++ b/test/dotnet-resgen.Tests/project.json @@ -14,7 +14,7 @@ }, "xunit": "2.2.0-beta3-build3330", "xunit.netcore.extensions": "1.0.0-prerelease-00206", - "dotnet-test-xunit": "1.0.0-rc2-318883-21" + "dotnet-test-xunit": "1.0.0-rc2-330423-54" }, "frameworks": { "netcoreapp1.0": { diff --git a/test/dotnet-run.Tests/project.json b/test/dotnet-run.Tests/project.json index 4efa9e599..733b4d055 100644 --- a/test/dotnet-run.Tests/project.json +++ b/test/dotnet-run.Tests/project.json @@ -13,7 +13,7 @@ "target": "project" }, "xunit": "2.2.0-beta3-build3330", - "dotnet-test-xunit": "1.0.0-rc2-318883-21" + "dotnet-test-xunit": "1.0.0-rc2-330423-54" }, "frameworks": { "netcoreapp1.0": { diff --git a/test/dotnet-run.UnitTests/project.json b/test/dotnet-run.UnitTests/project.json index 3e800d3b2..2c511099d 100644 --- a/test/dotnet-run.UnitTests/project.json +++ b/test/dotnet-run.UnitTests/project.json @@ -14,7 +14,7 @@ }, "xunit": "2.2.0-beta3-build3330", "moq.netcore": "4.4.0-beta8", - "dotnet-test-xunit": "1.0.0-rc2-318883-21" + "dotnet-test-xunit": "1.0.0-rc2-330423-54" }, "frameworks": { "netcoreapp1.0": { diff --git a/test/dotnet-test.Tests/project.json b/test/dotnet-test.Tests/project.json index 57bda1725..873f6a070 100644 --- a/test/dotnet-test.Tests/project.json +++ b/test/dotnet-test.Tests/project.json @@ -19,8 +19,8 @@ "System.Net.Sockets": "4.1.0", "System.Runtime.Serialization.Primitives": "4.1.1", "xunit": "2.2.0-beta3-build3330", - "dotnet-test-xunit": "1.0.0-rc2-318883-21", - "Microsoft.DotNet.PlatformAbstractions": "1.0.1-beta-000914" + "dotnet-test-xunit": "1.0.0-rc2-330423-54", + "Microsoft.DotNet.PlatformAbstractions": "1.0.1-beta-000919" }, "frameworks": { "netcoreapp1.0": { diff --git a/test/dotnet-test.UnitTests/project.json b/test/dotnet-test.UnitTests/project.json index d8a630ca6..54f47f175 100644 --- a/test/dotnet-test.UnitTests/project.json +++ b/test/dotnet-test.UnitTests/project.json @@ -14,7 +14,7 @@ "exclude": "Compile" }, "xunit": "2.2.0-beta3-build3330", - "dotnet-test-xunit": "1.0.0-rc2-318883-21", + "dotnet-test-xunit": "1.0.0-rc2-330423-54", "moq.netcore": "4.4.0-beta8", "FluentAssertions": "4.2.2" }, diff --git a/test/dotnet.Tests/project.json b/test/dotnet.Tests/project.json index 1ff981ae9..904e1b6db 100644 --- a/test/dotnet.Tests/project.json +++ b/test/dotnet.Tests/project.json @@ -17,8 +17,8 @@ "type": "build" }, "xunit": "2.2.0-beta3-build3330", - "dotnet-test-xunit": "1.0.0-rc2-318883-21", - "Microsoft.DotNet.PlatformAbstractions": "1.0.1-beta-000914" + "dotnet-test-xunit": "1.0.0-rc2-330423-54", + "Microsoft.DotNet.PlatformAbstractions": "1.0.1-beta-000919" }, "frameworks": { "netcoreapp1.0": { From e08da40a1fc3d650552efaf0813e76cf5d265dec Mon Sep 17 00:00:00 2001 From: Rohit Agrawal Date: Thu, 18 Aug 2016 16:53:55 -0700 Subject: [PATCH 13/18] added pack3 command for dotnet (#4058) --- src/dotnet/Program.cs | 2 + .../commands/dotnet-pack3/Pack3Command.cs | 87 +++++++++++++++++++ 2 files changed, 89 insertions(+) create mode 100644 src/dotnet/commands/dotnet-pack3/Pack3Command.cs diff --git a/src/dotnet/Program.cs b/src/dotnet/Program.cs index d297ef88b..19eb6eb81 100644 --- a/src/dotnet/Program.cs +++ b/src/dotnet/Program.cs @@ -15,6 +15,7 @@ using Microsoft.DotNet.Tools.Compiler; using Microsoft.DotNet.Tools.Compiler.Csc; using Microsoft.DotNet.Tools.Help; using Microsoft.DotNet.Tools.New; +using Microsoft.DotNet.Tools.Pack3; using Microsoft.DotNet.Tools.Publish; using Microsoft.DotNet.Tools.Restore; using Microsoft.DotNet.Tools.Restore3; @@ -40,6 +41,7 @@ namespace Microsoft.DotNet.Cli ["build3"] = Build3Command.Run, ["run3"] = Run3Command.Run, ["restore3"] = Restore3Command.Run, + ["pack3"] = Pack3Command.Run, }; public static int Main(string[] args) diff --git a/src/dotnet/commands/dotnet-pack3/Pack3Command.cs b/src/dotnet/commands/dotnet-pack3/Pack3Command.cs new file mode 100644 index 000000000..41fb392cc --- /dev/null +++ b/src/dotnet/commands/dotnet-pack3/Pack3Command.cs @@ -0,0 +1,87 @@ +// 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.Collections.Generic; +using Microsoft.DotNet.Cli; +using Microsoft.DotNet.Cli.CommandLine; +using Microsoft.DotNet.Cli.Utils; + +namespace Microsoft.DotNet.Tools.Pack3 +{ + public class Pack3Command + { + public static int Run(string[] args) + { + DebugHelper.HandleDebugSwitch(ref args); + + CommandLineApplication cmd = new CommandLineApplication(throwOnUnexpectedArg: false) + { + Name = "pack3", + FullName = "pack3", + Description = "pack for msbuild" + }; + + cmd.HelpOption("-h|--help"); + + var output = cmd.Option("-o|--output ", + "Directory in which to place outputs", + CommandOptionType.SingleValue); + var noBuild = cmd.Option("--no-build", + "Do not build project before packing", + CommandOptionType.NoValue); + var configuration = cmd.Option("-c|--configuration ", + "Configuration under which to build", + CommandOptionType.SingleValue); + var versionSuffix = cmd.Option("--version-suffix ", + "Defines what `*` should be replaced with in version field in project.json", + CommandOptionType.SingleValue); + var serviceable = cmd.Option("-s|--serviceable", + "Set the serviceable flag in the package", + CommandOptionType.NoValue); + var argRoot = cmd.Argument("", + "The project to pack, defaults to the project file in the current directory. Can be a path to any project file", + multipleValues:true); + + cmd.OnExecute(() => + { + var msbuildArgs = new List() + { + "/t:pack" + }; + + if (noBuild.HasValue()) + { + msbuildArgs.Add($"/p:NoBuild=true"); + } + + if (output.HasValue()) + { + msbuildArgs.Add($"/p:PackageOutputPath={output.Value()}"); + } + + if (configuration.HasValue()) + { + msbuildArgs.Add($"/p:Configuration={configuration.Value()}"); + } + + if (versionSuffix.HasValue()) + { + msbuildArgs.Add($"/p:VersionSuffix={versionSuffix.Value()}"); + } + + if (serviceable.HasValue()) + { + msbuildArgs.Add($"/p:Serviceable=true"); + } + + msbuildArgs.AddRange(argRoot.Values); + + msbuildArgs.AddRange(cmd.RemainingArguments); + return new MSBuildForwardingApp(msbuildArgs).Execute(); + }); + + return cmd.Execute(args); + } + } +} \ No newline at end of file From 43c5a2c59bfac5dc59c078bde95381628f331ba6 Mon Sep 17 00:00:00 2001 From: Piotr Puszkiewicz Date: Tue, 9 Aug 2016 15:19:34 -0700 Subject: [PATCH 14/18] multi-proc test execution --- build/Microsoft.DotNet.Cli.Compile.targets | 6 +- build/Microsoft.DotNet.Cli.Test.targets | 69 +++++++++++++--------- run-build.ps1 | 4 +- run-build.sh | 4 +- 4 files changed, 49 insertions(+), 34 deletions(-) diff --git a/build/Microsoft.DotNet.Cli.Compile.targets b/build/Microsoft.DotNet.Cli.Compile.targets index 550a2dce0..b32926ce2 100644 --- a/build/Microsoft.DotNet.Cli.Compile.targets +++ b/build/Microsoft.DotNet.Cli.Compile.targets @@ -5,14 +5,14 @@ runtimes/any/native - $(RepoRoot)/resources/MSBuildImports + $(RepoRoot)/resources/MSBuildImports - + - diff --git a/build/Microsoft.DotNet.Cli.Test.targets b/build/Microsoft.DotNet.Cli.Test.targets index 5af75753d..d561164ab 100644 --- a/build/Microsoft.DotNet.Cli.Test.targets +++ b/build/Microsoft.DotNet.Cli.Test.targets @@ -10,7 +10,7 @@ - @@ -27,13 +27,28 @@ - + + @(TestTaskEnvironmentVariables) + + + + + + CLIBuildDll=$(CLIBuildDll); + Configuration=$(Configuration); + EnvironmentVariables=$(RunTestEnvironmentVariables); + TestProjectName=%(TestProjects.OutputName); + TestResultXmlDir=$(TestResultXmlDir); + ToolPath=$(Stage2Directory); + WorkingDirectory=%(TestProjects.ProjectDir) + + + + + + - - - - + @@ -122,7 +137,7 @@ Outputs="@(RestoreTestAssetProjectsInputs->'%(RelativeDir)/project.lock.json')"> @@ -136,23 +151,23 @@ - + - + - - @@ -167,14 +182,14 @@ @@ -184,7 +199,7 @@ - - - - diff --git a/run-build.ps1 b/run-build.ps1 index 55fb02d9c..b2c3f4b8f 100644 --- a/run-build.ps1 +++ b/run-build.ps1 @@ -71,10 +71,10 @@ $env:DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1 if ($NoBuild) { Write-Host "Not building due to --nobuild" - Write-Host "Command that would be run: 'dotnet build3 build.proj /p:Architecture=$Architecture $ExtraParameters'" + Write-Host "Command that would be run: 'dotnet build3 build.proj /m /p:Architecture=$Architecture $ExtraParameters'" } else { - dotnet build3 build.proj /p:Architecture=$Architecture $ExtraParameters + dotnet build3 build.proj /m /p:Architecture=$Architecture $ExtraParameters if($LASTEXITCODE -ne 0) { throw "Failed to build" } } diff --git a/run-build.sh b/run-build.sh index df4282efe..56823c636 100755 --- a/run-build.sh +++ b/run-build.sh @@ -117,8 +117,8 @@ export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1 echo "${args[@]}" if [ $BUILD -eq 1 ]; then - dotnet build3 build.proj /p:Architecture=$ARCHITECTURE "${args[@]}" + dotnet build3 build.proj /m /p:Architecture=$ARCHITECTURE "${args[@]}" else echo "Not building due to --nobuild" - echo "Command that would be run is: 'dotnet build3 build.proj /p:Architecture=$ARCHITECTURE ${args[@]}'" + echo "Command that would be run is: 'dotnet build3 build.proj /m /p:Architecture=$ARCHITECTURE ${args[@]}'" fi From 2cf4eb31069d0b44e54a2131e2287a137515e391 Mon Sep 17 00:00:00 2001 From: Piotr Puszkiewicz Date: Tue, 9 Aug 2016 15:39:12 -0700 Subject: [PATCH 15/18] Missed file --- build/test/RunTest.proj | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 build/test/RunTest.proj diff --git a/build/test/RunTest.proj b/build/test/RunTest.proj new file mode 100644 index 000000000..c469aec57 --- /dev/null +++ b/build/test/RunTest.proj @@ -0,0 +1,14 @@ + + + + + + + + \ No newline at end of file From a1e3218023b035a7cea488d1cd4f83b36b4a6c90 Mon Sep 17 00:00:00 2001 From: Piotr Puszkiewicz Date: Tue, 9 Aug 2016 16:15:49 -0700 Subject: [PATCH 16/18] msbuild885 --- build/test/RunTest.proj | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/build/test/RunTest.proj b/build/test/RunTest.proj index c469aec57..b3faca530 100644 --- a/build/test/RunTest.proj +++ b/build/test/RunTest.proj @@ -1,5 +1,12 @@ + + + + $([MSBuild]::Unescape($(CLIBuildDll))) + + + From e92c9603c8f7ef60ecf8cf9609637bb13f803a91 Mon Sep 17 00:00:00 2001 From: Piotr Puszkiewicz Date: Thu, 18 Aug 2016 15:25:16 -0700 Subject: [PATCH 17/18] Test reliability and format cleanups --- build/Microsoft.DotNet.Cli.Test.targets | 8 +++---- .../CSharp_xunittest/project.json.template | 2 +- ...atTheUserIsRunningDotNetForTheFirstTime.cs | 21 +++++++++++++------ 3 files changed, 20 insertions(+), 11 deletions(-) diff --git a/build/Microsoft.DotNet.Cli.Test.targets b/build/Microsoft.DotNet.Cli.Test.targets index d561164ab..af29cd473 100644 --- a/build/Microsoft.DotNet.Cli.Test.targets +++ b/build/Microsoft.DotNet.Cli.Test.targets @@ -78,7 +78,7 @@ @@ -89,13 +89,13 @@ WorkingDirectory="$(TestDirectory)" /> - - - + + diff --git a/src/dotnet/commands/dotnet-new/CSharp_xunittest/project.json.template b/src/dotnet/commands/dotnet-new/CSharp_xunittest/project.json.template index 888835ba0..0b5f89ad8 100644 --- a/src/dotnet/commands/dotnet-new/CSharp_xunittest/project.json.template +++ b/src/dotnet/commands/dotnet-new/CSharp_xunittest/project.json.template @@ -6,7 +6,7 @@ "dependencies": { "System.Runtime.Serialization.Primitives": "4.1.1", "xunit": "2.1.0", - "dotnet-test-xunit": "1.0.0-rc2-192208-24", + "dotnet-test-xunit": "1.0.0-rc2-318883-21", "Microsoft.DotNet.InternalAbstractions": "1.0.0" }, "testRunner": "xunit", diff --git a/test/dotnet.Tests/GivenThatTheUserIsRunningDotNetForTheFirstTime.cs b/test/dotnet.Tests/GivenThatTheUserIsRunningDotNetForTheFirstTime.cs index 4faf110c1..6137f1953 100644 --- a/test/dotnet.Tests/GivenThatTheUserIsRunningDotNetForTheFirstTime.cs +++ b/test/dotnet.Tests/GivenThatTheUserIsRunningDotNetForTheFirstTime.cs @@ -31,14 +31,15 @@ namespace Microsoft.DotNet.Tests _firstDotnetNonVerbUseCommandResult = command.ExecuteWithCapturedOutput("--info"); _firstDotnetVerbUseCommandResult = command.ExecuteWithCapturedOutput("new"); - _nugetCacheFolder = new DirectoryInfo(testNugetCache); } [Fact] public void Using_dotnet_for_the_first_time_succeeds() { - _firstDotnetVerbUseCommandResult.Should().Pass(); + _firstDotnetVerbUseCommandResult + .Should() + .Pass(); } [Fact] @@ -46,7 +47,9 @@ namespace Microsoft.DotNet.Tests { const string firstTimeNonVerbUseMessage = @".NET Command Line Tools"; - _firstDotnetNonVerbUseCommandResult.StdOut.Should().StartWith(firstTimeNonVerbUseMessage); + _firstDotnetNonVerbUseCommandResult.StdOut + .Should() + .StartWith(firstTimeNonVerbUseMessage); } [Fact] @@ -64,19 +67,25 @@ Configuring... ------------------- A command is running to initially populate your local package cache, to improve restore speed and enable offline access. This command will take up to a minute to complete and will only happen once."; - _firstDotnetVerbUseCommandResult.StdOut.Should().StartWith(firstTimeUseWelcomeMessage); + _firstDotnetVerbUseCommandResult.StdOut + .Should() + .StartWith(firstTimeUseWelcomeMessage); } [Fact] public void It_restores_the_nuget_packages_to_the_nuget_cache_folder() { - _nugetCacheFolder.Should().HaveFile($"{GetDotnetVersion()}.dotnetSentinel"); + _nugetCacheFolder + .Should() + .HaveFile($"{GetDotnetVersion()}.dotnetSentinel"); } [Fact] public void It_creates_a_sentinel_file_under_the_nuget_cache_folder() { - _nugetCacheFolder.Should().HaveDirectory("microsoft.netcore.app"); + _nugetCacheFolder + .Should() + .HaveDirectory("microsoft.netcore.app"); } private string GetDotnetVersion() From c5cc9feb6d3036acaf3a13b732a5fa5428f5f0cd Mon Sep 17 00:00:00 2001 From: Piotr Puszkiewicz Date: Thu, 18 Aug 2016 17:09:44 -0700 Subject: [PATCH 18/18] Update xunit template --- .../commands/dotnet-new/CSharp_xunittest/project.json.template | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/dotnet/commands/dotnet-new/CSharp_xunittest/project.json.template b/src/dotnet/commands/dotnet-new/CSharp_xunittest/project.json.template index 0b5f89ad8..6b9d82e88 100644 --- a/src/dotnet/commands/dotnet-new/CSharp_xunittest/project.json.template +++ b/src/dotnet/commands/dotnet-new/CSharp_xunittest/project.json.template @@ -6,7 +6,7 @@ "dependencies": { "System.Runtime.Serialization.Primitives": "4.1.1", "xunit": "2.1.0", - "dotnet-test-xunit": "1.0.0-rc2-318883-21", + "dotnet-test-xunit": "1.0.0-rc2-330423-54", "Microsoft.DotNet.InternalAbstractions": "1.0.0" }, "testRunner": "xunit",