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>
|
||||
<OutputType>Exe</OutputType>
|
||||
<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>
|
||||
<ItemGroup>
|
||||
<Compile Include="**\*.cs" Exclude="bin\**;obj\**;**\*.xproj;packages\**" />
|
||||
|
|
|
@ -7,5 +7,18 @@
|
|||
"dependencies": {},
|
||||
"frameworks": {
|
||||
"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.IO;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.DotNet.Cli.Utils;
|
||||
using Microsoft.DotNet.Tools.Common;
|
||||
|
@ -67,6 +69,27 @@ namespace Microsoft.DotNet.TestFramework
|
|||
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)
|
||||
{
|
||||
foreach (var file in filesToCopy)
|
||||
|
|
|
@ -2,7 +2,12 @@
|
|||
"version": "1.0.0-preview3-*",
|
||||
"description": "Microsoft.DotNet.TestFramework Class Library",
|
||||
"buildOptions": {
|
||||
"keyFile": "../../tools/Key.snk"
|
||||
"keyFile": "../../tools/Key.snk",
|
||||
"embed": {
|
||||
"include": [
|
||||
"NuGet.template.config"
|
||||
]
|
||||
}
|
||||
},
|
||||
"dependencies": {
|
||||
"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 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 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()}");
|
||||
}
|
||||
|
||||
if (runtimeOption.HasValue())
|
||||
{
|
||||
msbuildArgs.Add($"/p:RuntimeIdentifier={runtimeOption.Value()}");
|
||||
}
|
||||
|
||||
if (configurationOption.HasValue())
|
||||
{
|
||||
msbuildArgs.Add($"/p:Configuration={configurationOption.Value()}");
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
<Version>1.0.1</Version>
|
||||
</PackageReference>
|
||||
<PackageReference Include="Microsoft.NET.Sdk">
|
||||
<Version>1.0.0-alpha-20161026-2</Version>
|
||||
<Version>1.0.0-alpha-20161029-1</Version>
|
||||
<PrivateAssets>All</PrivateAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk">
|
||||
|
|
|
@ -29,16 +29,24 @@ namespace Microsoft.DotNet.Cli.Utils.Tests
|
|||
[WindowsOnlyFact]
|
||||
public void It_resolves_desktop_apps_defaulting_to_Debug_Configuration()
|
||||
{
|
||||
var runtime = DotnetLegacyRuntimeIdentifiers.InferLegacyRestoreRuntimeIdentifier();
|
||||
var configuration = "Debug";
|
||||
|
||||
var testInstance = TestAssets.Get(TestAssetKinds.DesktopTestProjects, "AppWithProjTool2Fx")
|
||||
.CreateInstance()
|
||||
.WithSourceFiles()
|
||||
.WithRestoreFiles();
|
||||
.WithNuGetConfig(_repoDirectoriesProvider.TestPackages);
|
||||
|
||||
var restoreCommand = new RestoreCommand()
|
||||
.WithWorkingDirectory(testInstance.Root)
|
||||
.WithRuntime(runtime)
|
||||
.ExecuteWithCapturedOutput()
|
||||
.Should().Pass();
|
||||
|
||||
var buildCommand = new BuildCommand()
|
||||
.WithWorkingDirectory(testInstance.Root)
|
||||
.WithConfiguration(configuration)
|
||||
.WithRuntime(runtime)
|
||||
.WithCapturedOutput()
|
||||
.Execute()
|
||||
.Should().Pass();
|
||||
|
@ -60,16 +68,24 @@ namespace Microsoft.DotNet.Cli.Utils.Tests
|
|||
[WindowsOnlyFact]
|
||||
public void It_resolves_desktop_apps_when_configuration_is_Debug()
|
||||
{
|
||||
var runtime = DotnetLegacyRuntimeIdentifiers.InferLegacyRestoreRuntimeIdentifier();
|
||||
var configuration = "Debug";
|
||||
|
||||
var testInstance = TestAssets.Get(TestAssetKinds.DesktopTestProjects, "AppWithProjTool2Fx")
|
||||
.CreateInstance()
|
||||
.WithSourceFiles()
|
||||
.WithRestoreFiles();
|
||||
.WithNuGetConfig(_repoDirectoriesProvider.TestPackages);
|
||||
|
||||
var restoreCommand = new RestoreCommand()
|
||||
.WithWorkingDirectory(testInstance.Root)
|
||||
.WithRuntime(runtime)
|
||||
.ExecuteWithCapturedOutput()
|
||||
.Should().Pass();
|
||||
|
||||
var buildCommand = new BuildCommand()
|
||||
.WithWorkingDirectory(testInstance.Root)
|
||||
.WithConfiguration(configuration)
|
||||
.WithRuntime(runtime)
|
||||
.Execute()
|
||||
.Should().Pass();
|
||||
|
||||
|
@ -89,12 +105,19 @@ namespace Microsoft.DotNet.Cli.Utils.Tests
|
|||
[WindowsOnlyFact]
|
||||
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")
|
||||
.CreateInstance()
|
||||
.WithSourceFiles()
|
||||
.WithRestoreFiles();
|
||||
.WithNuGetConfig(_repoDirectoriesProvider.TestPackages);
|
||||
|
||||
var restoreCommand = new RestoreCommand()
|
||||
.WithWorkingDirectory(testInstance.Root)
|
||||
.WithRuntime(runtime)
|
||||
.ExecuteWithCapturedOutput()
|
||||
.Should().Pass();
|
||||
|
||||
var buildCommand = new BuildCommand()
|
||||
.WithWorkingDirectory(testInstance.Root)
|
||||
|
@ -120,12 +143,19 @@ namespace Microsoft.DotNet.Cli.Utils.Tests
|
|||
[WindowsOnlyFact]
|
||||
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")
|
||||
.CreateInstance()
|
||||
.WithSourceFiles()
|
||||
.WithRestoreFiles();
|
||||
.WithNuGetConfig(_repoDirectoriesProvider.TestPackages);
|
||||
|
||||
var restoreCommand = new RestoreCommand()
|
||||
.WithWorkingDirectory(testInstance.Root)
|
||||
.WithRuntime(runtime)
|
||||
.ExecuteWithCapturedOutput()
|
||||
.Should().Pass();
|
||||
|
||||
var buildCommand = new BuildCommand()
|
||||
.WithWorkingDirectory(testInstance.Root)
|
||||
|
|
|
@ -7,21 +7,40 @@ namespace Microsoft.DotNet.Tools.Test.Utilities
|
|||
{
|
||||
public sealed class RestoreCommand : TestCommand
|
||||
{
|
||||
private string _runtime;
|
||||
|
||||
public RestoreCommand()
|
||||
: base("dotnet")
|
||||
{
|
||||
}
|
||||
|
||||
public RestoreCommand WithRuntime(string runtime)
|
||||
{
|
||||
_runtime = runtime;
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
public override CommandResult Execute(string args = "")
|
||||
{
|
||||
args = $"restore {args} --disable-parallel";
|
||||
args = $"restore {GetRuntime()} {args} --disable-parallel";
|
||||
return base.Execute(args);
|
||||
}
|
||||
|
||||
public override CommandResult ExecuteWithCapturedOutput(string args = "")
|
||||
{
|
||||
args = $"restore {args} --disable-parallel";
|
||||
args = $"restore {GetRuntime()} {args} --disable-parallel";
|
||||
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)]
|
||||
public void It_auto_add_desktop_references_during_migrate(string testGroup, string projectName, bool isDesktopApp)
|
||||
{
|
||||
var runtime = DotnetLegacyRuntimeIdentifiers.InferLegacyRestoreRuntimeIdentifier();
|
||||
var testAssetManager = GetTestGroupTestAssetsManager(testGroup);
|
||||
var projectDirectory = testAssetManager.CreateTestInstance(projectName).WithLockFiles().Path;
|
||||
|
||||
CleanBinObj(projectDirectory);
|
||||
MigrateProject(new string[] { projectDirectory });
|
||||
Restore(projectDirectory);
|
||||
BuildMSBuild(projectDirectory, projectName);
|
||||
Restore(projectDirectory, runtime: runtime);
|
||||
BuildMSBuild(projectDirectory, projectName, runtime:runtime);
|
||||
VerifyAutoInjectedDesktopReferences(projectDirectory, projectName, isDesktopApp);
|
||||
VerifyAllMSBuildOutputsRunnable(projectDirectory);
|
||||
}
|
||||
|
@ -584,10 +585,11 @@ namespace Microsoft.DotNet.Migration.Tests
|
|||
.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()
|
||||
.WithWorkingDirectory(projectDirectory);
|
||||
.WithWorkingDirectory(projectDirectory)
|
||||
.WithRuntime(runtime);
|
||||
|
||||
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)
|
||||
{
|
||||
|
@ -612,6 +618,7 @@ namespace Microsoft.DotNet.Migration.Tests
|
|||
|
||||
var result = new BuildCommand()
|
||||
.WithWorkingDirectory(projectDirectory)
|
||||
.WithRuntime(runtime)
|
||||
.ExecuteWithCapturedOutput($"{projectName} /p:Configuration={configuration}");
|
||||
|
||||
result
|
||||
|
|
Loading…
Add table
Reference in a new issue