Fixing full framework tests
This commit is contained in:
parent
c2f60cede4
commit
9139c4006b
10 changed files with 127 additions and 15 deletions
|
@ -5,6 +5,7 @@
|
||||||
<TargetFrameworks>netcoreapp1.0;net451</TargetFrameworks>
|
<TargetFrameworks>netcoreapp1.0;net451</TargetFrameworks>
|
||||||
<OutputType>Exe</OutputType>
|
<OutputType>Exe</OutputType>
|
||||||
<PackageTargetFallback Condition=" '$(TargetFramework)' == 'netcoreapp1.0' ">$(PackageTargetFallback);portable-net45+win8;dnxcore50</PackageTargetFallback>
|
<PackageTargetFallback Condition=" '$(TargetFramework)' == 'netcoreapp1.0' ">$(PackageTargetFallback);portable-net45+win8;dnxcore50</PackageTargetFallback>
|
||||||
|
<RuntimeIdentifiers>win7-x64;win7-x86;osx.10.10-x64;osx.10.11-x64;ubuntu.14.04-x64;ubuntu.16.04-x64;centos.7-x64;rhel.7.2-x64;debian.8-x64;fedora.23-x64;opensuse.13.2-x64</RuntimeIdentifiers>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="**\*.cs" Exclude="bin\**;obj\**;**\*.xproj;packages\**" />
|
<Compile Include="**\*.cs" Exclude="bin\**;obj\**;**\*.xproj;packages\**" />
|
||||||
|
|
|
@ -7,5 +7,18 @@
|
||||||
"dependencies": {},
|
"dependencies": {},
|
||||||
"frameworks": {
|
"frameworks": {
|
||||||
"net451": {}
|
"net451": {}
|
||||||
|
},
|
||||||
|
"runtimes": {
|
||||||
|
"win7-x64": {},
|
||||||
|
"win7-x86": {},
|
||||||
|
"osx.10.10-x64": {},
|
||||||
|
"osx.10.11-x64": {},
|
||||||
|
"ubuntu.14.04-x64": {},
|
||||||
|
"ubuntu.16.04-x64": {},
|
||||||
|
"centos.7-x64": {},
|
||||||
|
"rhel.7.2-x64": {},
|
||||||
|
"debian.8-x64": {},
|
||||||
|
"fedora.23-x64": {},
|
||||||
|
"opensuse.13.2-x64": {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
6
src/Microsoft.DotNet.TestFramework/NuGet.template.config
Normal file
6
src/Microsoft.DotNet.TestFramework/NuGet.template.config
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<configuration>
|
||||||
|
<packageSources>
|
||||||
|
<add key="test-packages" value="$fullpath$" />
|
||||||
|
</packageSources>
|
||||||
|
</configuration>
|
|
@ -5,7 +5,9 @@ using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Reflection;
|
||||||
using System.Runtime.CompilerServices;
|
using System.Runtime.CompilerServices;
|
||||||
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Microsoft.DotNet.Cli.Utils;
|
using Microsoft.DotNet.Cli.Utils;
|
||||||
using Microsoft.DotNet.Tools.Common;
|
using Microsoft.DotNet.Tools.Common;
|
||||||
|
@ -67,6 +69,27 @@ namespace Microsoft.DotNet.TestFramework
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public TestAssetInstance WithNuGetConfig(string nugetCache)
|
||||||
|
{
|
||||||
|
var thisAssembly = typeof(TestAssetInstance).GetTypeInfo().Assembly;
|
||||||
|
var newNuGetConfigPath = Path.Combine(Root.FullName, "NuGet.config");
|
||||||
|
|
||||||
|
using (var resource = thisAssembly.GetManifestResourceStream("NuGet.template.config"))
|
||||||
|
{
|
||||||
|
var streamReader = new StreamReader(resource);
|
||||||
|
var content = streamReader.ReadToEnd();
|
||||||
|
content = content.Replace("$fullpath$", nugetCache);
|
||||||
|
|
||||||
|
using (var newNuGetConfig = new FileStream(newNuGetConfigPath, FileMode.Create, FileAccess.Write))
|
||||||
|
{
|
||||||
|
var contentBytes = new UTF8Encoding(true).GetBytes(content);
|
||||||
|
newNuGetConfig.Write(contentBytes, 0, contentBytes.Length);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
private void CopyFiles(IEnumerable<FileInfo> filesToCopy)
|
private void CopyFiles(IEnumerable<FileInfo> filesToCopy)
|
||||||
{
|
{
|
||||||
foreach (var file in filesToCopy)
|
foreach (var file in filesToCopy)
|
||||||
|
|
|
@ -2,7 +2,12 @@
|
||||||
"version": "1.0.0-preview3-*",
|
"version": "1.0.0-preview3-*",
|
||||||
"description": "Microsoft.DotNet.TestFramework Class Library",
|
"description": "Microsoft.DotNet.TestFramework Class Library",
|
||||||
"buildOptions": {
|
"buildOptions": {
|
||||||
"keyFile": "../../tools/Key.snk"
|
"keyFile": "../../tools/Key.snk",
|
||||||
|
"embed": {
|
||||||
|
"include": [
|
||||||
|
"NuGet.template.config"
|
||||||
|
]
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"Microsoft.DotNet.Cli.Utils": {
|
"Microsoft.DotNet.Cli.Utils": {
|
||||||
|
|
|
@ -28,6 +28,9 @@ namespace Microsoft.DotNet.Tools.Build
|
||||||
|
|
||||||
CommandOption outputOption = app.Option("-o|--output <OUTPUT_DIR>", "Directory in which to place outputs", CommandOptionType.SingleValue);
|
CommandOption outputOption = app.Option("-o|--output <OUTPUT_DIR>", "Directory in which to place outputs", CommandOptionType.SingleValue);
|
||||||
CommandOption frameworkOption = app.Option("-f|--framework <FRAMEWORK>", "Compile a specific framework", CommandOptionType.SingleValue);
|
CommandOption frameworkOption = app.Option("-f|--framework <FRAMEWORK>", "Compile a specific framework", CommandOptionType.SingleValue);
|
||||||
|
CommandOption runtimeOption = app.Option(
|
||||||
|
"-r|--runtime <RUNTIME_IDENTIFIER>", "Target runtime to build for. The default is to build a portable application.",
|
||||||
|
CommandOptionType.SingleValue);
|
||||||
CommandOption configurationOption = app.Option("-c|--configuration <CONFIGURATION>", "Configuration under which to build", CommandOptionType.SingleValue);
|
CommandOption configurationOption = app.Option("-c|--configuration <CONFIGURATION>", "Configuration under which to build", CommandOptionType.SingleValue);
|
||||||
CommandOption versionSuffixOption = app.Option("--version-suffix <VERSION_SUFFIX>", "Defines the value for the $(VersionSuffix) property in the project", CommandOptionType.SingleValue);
|
CommandOption versionSuffixOption = app.Option("--version-suffix <VERSION_SUFFIX>", "Defines the value for the $(VersionSuffix) property in the project", CommandOptionType.SingleValue);
|
||||||
|
|
||||||
|
@ -62,6 +65,11 @@ namespace Microsoft.DotNet.Tools.Build
|
||||||
msbuildArgs.Add($"/p:TargetFramework={frameworkOption.Value()}");
|
msbuildArgs.Add($"/p:TargetFramework={frameworkOption.Value()}");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (runtimeOption.HasValue())
|
||||||
|
{
|
||||||
|
msbuildArgs.Add($"/p:RuntimeIdentifier={runtimeOption.Value()}");
|
||||||
|
}
|
||||||
|
|
||||||
if (configurationOption.HasValue())
|
if (configurationOption.HasValue())
|
||||||
{
|
{
|
||||||
msbuildArgs.Add($"/p:Configuration={configurationOption.Value()}");
|
msbuildArgs.Add($"/p:Configuration={configurationOption.Value()}");
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
<Version>1.0.1</Version>
|
<Version>1.0.1</Version>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Microsoft.NET.Sdk">
|
<PackageReference Include="Microsoft.NET.Sdk">
|
||||||
<Version>1.0.0-alpha-20161026-2</Version>
|
<Version>1.0.0-alpha-20161029-1</Version>
|
||||||
<PrivateAssets>All</PrivateAssets>
|
<PrivateAssets>All</PrivateAssets>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Microsoft.NET.Test.Sdk">
|
<PackageReference Include="Microsoft.NET.Test.Sdk">
|
||||||
|
|
|
@ -29,16 +29,24 @@ namespace Microsoft.DotNet.Cli.Utils.Tests
|
||||||
[WindowsOnlyFact]
|
[WindowsOnlyFact]
|
||||||
public void It_resolves_desktop_apps_defaulting_to_Debug_Configuration()
|
public void It_resolves_desktop_apps_defaulting_to_Debug_Configuration()
|
||||||
{
|
{
|
||||||
|
var runtime = DotnetLegacyRuntimeIdentifiers.InferLegacyRestoreRuntimeIdentifier();
|
||||||
var configuration = "Debug";
|
var configuration = "Debug";
|
||||||
|
|
||||||
var testInstance = TestAssets.Get(TestAssetKinds.DesktopTestProjects, "AppWithProjTool2Fx")
|
var testInstance = TestAssets.Get(TestAssetKinds.DesktopTestProjects, "AppWithProjTool2Fx")
|
||||||
.CreateInstance()
|
.CreateInstance()
|
||||||
.WithSourceFiles()
|
.WithSourceFiles()
|
||||||
.WithRestoreFiles();
|
.WithNuGetConfig(_repoDirectoriesProvider.TestPackages);
|
||||||
|
|
||||||
|
var restoreCommand = new RestoreCommand()
|
||||||
|
.WithWorkingDirectory(testInstance.Root)
|
||||||
|
.WithRuntime(runtime)
|
||||||
|
.ExecuteWithCapturedOutput()
|
||||||
|
.Should().Pass();
|
||||||
|
|
||||||
var buildCommand = new BuildCommand()
|
var buildCommand = new BuildCommand()
|
||||||
.WithWorkingDirectory(testInstance.Root)
|
.WithWorkingDirectory(testInstance.Root)
|
||||||
.WithConfiguration(configuration)
|
.WithConfiguration(configuration)
|
||||||
|
.WithRuntime(runtime)
|
||||||
.WithCapturedOutput()
|
.WithCapturedOutput()
|
||||||
.Execute()
|
.Execute()
|
||||||
.Should().Pass();
|
.Should().Pass();
|
||||||
|
@ -60,16 +68,24 @@ namespace Microsoft.DotNet.Cli.Utils.Tests
|
||||||
[WindowsOnlyFact]
|
[WindowsOnlyFact]
|
||||||
public void It_resolves_desktop_apps_when_configuration_is_Debug()
|
public void It_resolves_desktop_apps_when_configuration_is_Debug()
|
||||||
{
|
{
|
||||||
|
var runtime = DotnetLegacyRuntimeIdentifiers.InferLegacyRestoreRuntimeIdentifier();
|
||||||
var configuration = "Debug";
|
var configuration = "Debug";
|
||||||
|
|
||||||
var testInstance = TestAssets.Get(TestAssetKinds.DesktopTestProjects, "AppWithProjTool2Fx")
|
var testInstance = TestAssets.Get(TestAssetKinds.DesktopTestProjects, "AppWithProjTool2Fx")
|
||||||
.CreateInstance()
|
.CreateInstance()
|
||||||
.WithSourceFiles()
|
.WithSourceFiles()
|
||||||
.WithRestoreFiles();
|
.WithNuGetConfig(_repoDirectoriesProvider.TestPackages);
|
||||||
|
|
||||||
|
var restoreCommand = new RestoreCommand()
|
||||||
|
.WithWorkingDirectory(testInstance.Root)
|
||||||
|
.WithRuntime(runtime)
|
||||||
|
.ExecuteWithCapturedOutput()
|
||||||
|
.Should().Pass();
|
||||||
|
|
||||||
var buildCommand = new BuildCommand()
|
var buildCommand = new BuildCommand()
|
||||||
.WithWorkingDirectory(testInstance.Root)
|
.WithWorkingDirectory(testInstance.Root)
|
||||||
.WithConfiguration(configuration)
|
.WithConfiguration(configuration)
|
||||||
|
.WithRuntime(runtime)
|
||||||
.Execute()
|
.Execute()
|
||||||
.Should().Pass();
|
.Should().Pass();
|
||||||
|
|
||||||
|
@ -89,12 +105,19 @@ namespace Microsoft.DotNet.Cli.Utils.Tests
|
||||||
[WindowsOnlyFact]
|
[WindowsOnlyFact]
|
||||||
public void It_resolves_desktop_apps_when_configuration_is_Release()
|
public void It_resolves_desktop_apps_when_configuration_is_Release()
|
||||||
{
|
{
|
||||||
var configuration = "Release";
|
var runtime = DotnetLegacyRuntimeIdentifiers.InferLegacyRestoreRuntimeIdentifier();
|
||||||
|
var configuration = "Debug";
|
||||||
|
|
||||||
var testInstance = TestAssets.Get(TestAssetKinds.DesktopTestProjects, "AppWithProjTool2Fx")
|
var testInstance = TestAssets.Get(TestAssetKinds.DesktopTestProjects, "AppWithProjTool2Fx")
|
||||||
.CreateInstance()
|
.CreateInstance()
|
||||||
.WithSourceFiles()
|
.WithSourceFiles()
|
||||||
.WithRestoreFiles();
|
.WithNuGetConfig(_repoDirectoriesProvider.TestPackages);
|
||||||
|
|
||||||
|
var restoreCommand = new RestoreCommand()
|
||||||
|
.WithWorkingDirectory(testInstance.Root)
|
||||||
|
.WithRuntime(runtime)
|
||||||
|
.ExecuteWithCapturedOutput()
|
||||||
|
.Should().Pass();
|
||||||
|
|
||||||
var buildCommand = new BuildCommand()
|
var buildCommand = new BuildCommand()
|
||||||
.WithWorkingDirectory(testInstance.Root)
|
.WithWorkingDirectory(testInstance.Root)
|
||||||
|
@ -120,12 +143,19 @@ namespace Microsoft.DotNet.Cli.Utils.Tests
|
||||||
[WindowsOnlyFact]
|
[WindowsOnlyFact]
|
||||||
public void It_resolves_desktop_apps_using_configuration_passed_to_create()
|
public void It_resolves_desktop_apps_using_configuration_passed_to_create()
|
||||||
{
|
{
|
||||||
var configuration = "Release";
|
var runtime = DotnetLegacyRuntimeIdentifiers.InferLegacyRestoreRuntimeIdentifier();
|
||||||
|
var configuration = "Debug";
|
||||||
|
|
||||||
var testInstance = TestAssets.Get(TestAssetKinds.DesktopTestProjects, "AppWithProjTool2Fx")
|
var testInstance = TestAssets.Get(TestAssetKinds.DesktopTestProjects, "AppWithProjTool2Fx")
|
||||||
.CreateInstance()
|
.CreateInstance()
|
||||||
.WithSourceFiles()
|
.WithSourceFiles()
|
||||||
.WithRestoreFiles();
|
.WithNuGetConfig(_repoDirectoriesProvider.TestPackages);
|
||||||
|
|
||||||
|
var restoreCommand = new RestoreCommand()
|
||||||
|
.WithWorkingDirectory(testInstance.Root)
|
||||||
|
.WithRuntime(runtime)
|
||||||
|
.ExecuteWithCapturedOutput()
|
||||||
|
.Should().Pass();
|
||||||
|
|
||||||
var buildCommand = new BuildCommand()
|
var buildCommand = new BuildCommand()
|
||||||
.WithWorkingDirectory(testInstance.Root)
|
.WithWorkingDirectory(testInstance.Root)
|
||||||
|
|
|
@ -7,21 +7,40 @@ namespace Microsoft.DotNet.Tools.Test.Utilities
|
||||||
{
|
{
|
||||||
public sealed class RestoreCommand : TestCommand
|
public sealed class RestoreCommand : TestCommand
|
||||||
{
|
{
|
||||||
|
private string _runtime;
|
||||||
|
|
||||||
public RestoreCommand()
|
public RestoreCommand()
|
||||||
: base("dotnet")
|
: base("dotnet")
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public RestoreCommand WithRuntime(string runtime)
|
||||||
|
{
|
||||||
|
_runtime = runtime;
|
||||||
|
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public override CommandResult Execute(string args = "")
|
public override CommandResult Execute(string args = "")
|
||||||
{
|
{
|
||||||
args = $"restore {args} --disable-parallel";
|
args = $"restore {GetRuntime()} {args} --disable-parallel";
|
||||||
return base.Execute(args);
|
return base.Execute(args);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override CommandResult ExecuteWithCapturedOutput(string args = "")
|
public override CommandResult ExecuteWithCapturedOutput(string args = "")
|
||||||
{
|
{
|
||||||
args = $"restore {args} --disable-parallel";
|
args = $"restore {GetRuntime()} {args} --disable-parallel";
|
||||||
return base.ExecuteWithCapturedOutput(args);
|
return base.ExecuteWithCapturedOutput(args);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private string GetRuntime()
|
||||||
|
{
|
||||||
|
if (_runtime == null)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $"/p:RuntimeIdentifier={_runtime}";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -371,13 +371,14 @@ namespace Microsoft.DotNet.Migration.Tests
|
||||||
[InlineData("TestProjects", "PJTestAppSimple", false)]
|
[InlineData("TestProjects", "PJTestAppSimple", false)]
|
||||||
public void It_auto_add_desktop_references_during_migrate(string testGroup, string projectName, bool isDesktopApp)
|
public void It_auto_add_desktop_references_during_migrate(string testGroup, string projectName, bool isDesktopApp)
|
||||||
{
|
{
|
||||||
|
var runtime = DotnetLegacyRuntimeIdentifiers.InferLegacyRestoreRuntimeIdentifier();
|
||||||
var testAssetManager = GetTestGroupTestAssetsManager(testGroup);
|
var testAssetManager = GetTestGroupTestAssetsManager(testGroup);
|
||||||
var projectDirectory = testAssetManager.CreateTestInstance(projectName).WithLockFiles().Path;
|
var projectDirectory = testAssetManager.CreateTestInstance(projectName).WithLockFiles().Path;
|
||||||
|
|
||||||
CleanBinObj(projectDirectory);
|
CleanBinObj(projectDirectory);
|
||||||
MigrateProject(new string[] { projectDirectory });
|
MigrateProject(new string[] { projectDirectory });
|
||||||
Restore(projectDirectory);
|
Restore(projectDirectory, runtime: runtime);
|
||||||
BuildMSBuild(projectDirectory, projectName);
|
BuildMSBuild(projectDirectory, projectName, runtime:runtime);
|
||||||
VerifyAutoInjectedDesktopReferences(projectDirectory, projectName, isDesktopApp);
|
VerifyAutoInjectedDesktopReferences(projectDirectory, projectName, isDesktopApp);
|
||||||
VerifyAllMSBuildOutputsRunnable(projectDirectory);
|
VerifyAllMSBuildOutputsRunnable(projectDirectory);
|
||||||
}
|
}
|
||||||
|
@ -584,10 +585,11 @@ namespace Microsoft.DotNet.Migration.Tests
|
||||||
.Should().Pass();
|
.Should().Pass();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Restore(string projectDirectory, string projectName=null)
|
private void Restore(string projectDirectory, string projectName=null, string runtime=null)
|
||||||
{
|
{
|
||||||
var command = new RestoreCommand()
|
var command = new RestoreCommand()
|
||||||
.WithWorkingDirectory(projectDirectory);
|
.WithWorkingDirectory(projectDirectory)
|
||||||
|
.WithRuntime(runtime);
|
||||||
|
|
||||||
if (projectName != null)
|
if (projectName != null)
|
||||||
{
|
{
|
||||||
|
@ -601,7 +603,11 @@ namespace Microsoft.DotNet.Migration.Tests
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private string BuildMSBuild(string projectDirectory, string projectName, string configuration="Debug")
|
private string BuildMSBuild(
|
||||||
|
string projectDirectory,
|
||||||
|
string projectName,
|
||||||
|
string configuration="Debug",
|
||||||
|
string runtime=null)
|
||||||
{
|
{
|
||||||
if (projectName != null)
|
if (projectName != null)
|
||||||
{
|
{
|
||||||
|
@ -612,6 +618,7 @@ namespace Microsoft.DotNet.Migration.Tests
|
||||||
|
|
||||||
var result = new BuildCommand()
|
var result = new BuildCommand()
|
||||||
.WithWorkingDirectory(projectDirectory)
|
.WithWorkingDirectory(projectDirectory)
|
||||||
|
.WithRuntime(runtime)
|
||||||
.ExecuteWithCapturedOutput($"{projectName} /p:Configuration={configuration}");
|
.ExecuteWithCapturedOutput($"{projectName} /p:Configuration={configuration}");
|
||||||
|
|
||||||
result
|
result
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue