Fixing dotnet-test.Tests to use a portable test app - ProjectWithTests.
The ProjectWithTests needed to be moved outside of TestAssets\TestProjects because it can't be restored --infer-runtimes and it has to be built with netcoreapp1.0.
This commit is contained in:
parent
8a9068efbf
commit
7d6d74bba2
5 changed files with 36 additions and 11 deletions
|
@ -1,15 +1,19 @@
|
||||||
{
|
{
|
||||||
"version": "1.0.0-*",
|
"version": "1.0.0-*",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"NETStandard.Library": "1.5.0-rc2-24008",
|
"Microsoft.NETCore.App": {
|
||||||
|
"type": "platform",
|
||||||
|
"version": "1.0.0-rc2-*"
|
||||||
|
},
|
||||||
"System.Linq.Expressions": "4.0.11-rc2-24008",
|
"System.Linq.Expressions": "4.0.11-rc2-24008",
|
||||||
"System.Runtime.Serialization.Primitives": "4.1.1-rc2-24008",
|
"System.Runtime.Serialization.Primitives": "4.1.1-rc2-24008",
|
||||||
"xunit": "2.1.0",
|
"xunit": "2.1.0",
|
||||||
"dotnet-test-xunit": "1.0.0-dev-128011-22"
|
"dotnet-test-xunit": "1.0.0-dev-140469-38"
|
||||||
},
|
},
|
||||||
"frameworks": {
|
"frameworks": {
|
||||||
"netstandardapp1.5": {
|
"netcoreapp1.0": {
|
||||||
"imports": [
|
"imports": [
|
||||||
|
"netstandardapp1.5",
|
||||||
"dnxcore50",
|
"dnxcore50",
|
||||||
"portable-net45+win8"
|
"portable-net45+win8"
|
||||||
]
|
]
|
|
@ -93,7 +93,17 @@ namespace Microsoft.DotNet.Cli.Build
|
||||||
"--fallbacksource", Dirs.TestPackages,
|
"--fallbacksource", Dirs.TestPackages,
|
||||||
"--fallbacksource", Dirs.Corehost)
|
"--fallbacksource", Dirs.Corehost)
|
||||||
.WorkingDirectory(Path.Combine(c.BuildContext.BuildDirectory, "TestAssets", "TestProjects"))
|
.WorkingDirectory(Path.Combine(c.BuildContext.BuildDirectory, "TestAssets", "TestProjects"))
|
||||||
.Execute().EnsureSuccessful();
|
.Execute()
|
||||||
|
.EnsureSuccessful();
|
||||||
|
|
||||||
|
// The 'ProjectWithTests' is a portable test app. Cannot call --infer-runtimes on it, since on win x64 machines,
|
||||||
|
// the x86 runtime is being inferred, and there are no x86 DotNetHost packages
|
||||||
|
dotnet.Restore(
|
||||||
|
"--verbosity", "verbose",
|
||||||
|
"--fallbacksource", Dirs.Corehost)
|
||||||
|
.WorkingDirectory(Path.Combine(c.BuildContext.BuildDirectory, "TestAssets", "ProjectWithTests"))
|
||||||
|
.Execute()
|
||||||
|
.EnsureSuccessful();
|
||||||
|
|
||||||
// The 'ProjectModelServer' directory contains intentionally-unresolved dependencies, so don't check for success. Also, suppress the output
|
// The 'ProjectModelServer' directory contains intentionally-unresolved dependencies, so don't check for success. Also, suppress the output
|
||||||
dotnet.Restore(
|
dotnet.Restore(
|
||||||
|
@ -248,6 +258,14 @@ namespace Microsoft.DotNet.Cli.Build
|
||||||
.EnsureSuccessful();
|
.EnsureSuccessful();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// build ProjectWithTests, which is outside of TestProjects and targets netcoreapp
|
||||||
|
string projectWithTests = Path.Combine(c.BuildContext.BuildDirectory, "TestAssets", "ProjectWithTests");
|
||||||
|
c.Info($"Building: {projectWithTests}");
|
||||||
|
dotnet.Build("--framework", "netcoreapp1.0")
|
||||||
|
.WorkingDirectory(projectWithTests)
|
||||||
|
.Execute()
|
||||||
|
.EnsureSuccessful();
|
||||||
|
|
||||||
return c.Success();
|
return c.Success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
using System;
|
using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using Microsoft.DotNet.ProjectModel;
|
using Microsoft.DotNet.ProjectModel;
|
||||||
|
using Microsoft.DotNet.TestFramework;
|
||||||
using Microsoft.Extensions.PlatformAbstractions;
|
using Microsoft.Extensions.PlatformAbstractions;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
using Microsoft.DotNet.Tools.Test.Utilities;
|
using Microsoft.DotNet.Tools.Test.Utilities;
|
||||||
|
@ -18,8 +19,9 @@ namespace Microsoft.Dotnet.Tools.Test.Tests
|
||||||
|
|
||||||
public GivenThatWeWantToRunTestsInTheConsole()
|
public GivenThatWeWantToRunTestsInTheConsole()
|
||||||
{
|
{
|
||||||
|
var testAssetManager = new TestAssetsManager(Path.Combine(RepoRoot, "TestAssets"));
|
||||||
var testInstance =
|
var testInstance =
|
||||||
TestAssetsManager.CreateTestInstance("ProjectWithTests", identifier: "ConsoleTests").WithLockFiles();
|
testAssetManager.CreateTestInstance("ProjectWithTests", identifier: "ConsoleTests").WithLockFiles();
|
||||||
|
|
||||||
_projectFilePath = Path.Combine(testInstance.TestRoot, "project.json");
|
_projectFilePath = Path.Combine(testInstance.TestRoot, "project.json");
|
||||||
var contexts = ProjectContext.CreateContextForEachFramework(
|
var contexts = ProjectContext.CreateContextForEachFramework(
|
||||||
|
@ -27,8 +29,7 @@ namespace Microsoft.Dotnet.Tools.Test.Tests
|
||||||
null,
|
null,
|
||||||
PlatformServices.Default.Runtime.GetAllCandidateRuntimeIdentifiers());
|
PlatformServices.Default.Runtime.GetAllCandidateRuntimeIdentifiers());
|
||||||
|
|
||||||
var runtime = contexts.FirstOrDefault(c => !string.IsNullOrEmpty(c.RuntimeIdentifier))?.RuntimeIdentifier;
|
_defaultOutputPath = Path.Combine(testInstance.TestRoot, "bin", "Debug", "netcoreapp1.0");
|
||||||
_defaultOutputPath = Path.Combine(testInstance.TestRoot, "bin", "Debug", DefaultFramework, runtime);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//ISSUE https://github.com/dotnet/cli/issues/1935
|
//ISSUE https://github.com/dotnet/cli/issues/1935
|
||||||
|
@ -55,7 +56,7 @@ namespace Microsoft.Dotnet.Tools.Test.Tests
|
||||||
{
|
{
|
||||||
var testCommand = new DotnetTestCommand();
|
var testCommand = new DotnetTestCommand();
|
||||||
var result = testCommand.Execute(
|
var result = testCommand.Execute(
|
||||||
$"{_projectFilePath} -o {Path.Combine(AppContext.BaseDirectory, "output")} -f netstandardapp1.5");
|
$"{_projectFilePath} -o {Path.Combine(AppContext.BaseDirectory, "output")} -f netcoreapp1.0");
|
||||||
result.Should().Pass();
|
result.Should().Pass();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||||
|
|
||||||
using Microsoft.DotNet.ProjectModel;
|
using Microsoft.DotNet.ProjectModel;
|
||||||
|
using Microsoft.DotNet.TestFramework;
|
||||||
using Microsoft.DotNet.Tools.Test.Utilities;
|
using Microsoft.DotNet.Tools.Test.Utilities;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using FluentAssertions;
|
using FluentAssertions;
|
||||||
|
@ -18,15 +19,16 @@ namespace Microsoft.Dotnet.Tools.Test.Tests
|
||||||
|
|
||||||
public GivenThatWeWantToUseDotnetTestE2EInDesignTime()
|
public GivenThatWeWantToUseDotnetTestE2EInDesignTime()
|
||||||
{
|
{
|
||||||
var testInstance = TestAssetsManager.CreateTestInstance("ProjectWithTests").WithLockFiles();
|
var testAssetManager = new TestAssetsManager(Path.Combine(RepoRoot, "TestAssets"));
|
||||||
|
var testInstance = testAssetManager.CreateTestInstance("ProjectWithTests").WithLockFiles();
|
||||||
|
|
||||||
_projectFilePath = Path.Combine(testInstance.TestRoot, "project.json");
|
_projectFilePath = Path.Combine(testInstance.TestRoot, "project.json");
|
||||||
var contexts = ProjectContext.CreateContextForEachFramework(
|
var contexts = ProjectContext.CreateContextForEachFramework(
|
||||||
_projectFilePath,
|
_projectFilePath,
|
||||||
null,
|
null,
|
||||||
PlatformServices.Default.Runtime.GetAllCandidateRuntimeIdentifiers());
|
PlatformServices.Default.Runtime.GetAllCandidateRuntimeIdentifiers());
|
||||||
var runtime = contexts.FirstOrDefault(c => !string.IsNullOrEmpty(c.RuntimeIdentifier))?.RuntimeIdentifier;
|
|
||||||
_outputPath = Path.Combine(testInstance.TestRoot, "bin", "Debug", DefaultFramework, runtime);
|
_outputPath = Path.Combine(testInstance.TestRoot, "bin", "Debug", "netcoreapp1.0");
|
||||||
var buildCommand = new BuildCommand(_projectFilePath);
|
var buildCommand = new BuildCommand(_projectFilePath);
|
||||||
var result = buildCommand.Execute();
|
var result = buildCommand.Execute();
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue