Migrate: add package dependencies to test projects

This commit is contained in:
Justin Goshi 2016-10-31 13:59:47 -07:00
parent 5a621b53e2
commit 4ea37c91a8
5 changed files with 59 additions and 1 deletions

View file

@ -7,5 +7,11 @@ namespace Microsoft.DotNet.ProjectJsonMigration
{
public const string SdkPackageName = "Microsoft.NET.Sdk";
public const string WebSdkPackageName = "Microsoft.NET.Sdk.Web";
public const string TestSdkPackageName = "Microsoft.NET.Test.Sdk";
public const string TestSdkPackageVersion = "15.0.0-preview-20161024-02";
public const string XUnitPackageName = "xunit";
public const string XUnitPackageVersion = "2.2.0-beta3-build3402";
public const string XUnitRunnerPackageName = "xunit.runner.visualstudio";
public const string XUnitRunnerPackageVersion = "2.2.0-beta4-build1188";
}
}

View file

@ -18,6 +18,10 @@ namespace Microsoft.DotNet.ProjectJsonMigration
{
projectType = ProjectType.Web;
}
else if (project.IsTestProject)
{
projectType = ProjectType.Test;
}
return projectType;
}

View file

@ -3,6 +3,7 @@ namespace Microsoft.DotNet.ProjectJsonMigration
internal enum ProjectType
{
Console,
Web
Web,
Test
}
}

View file

@ -99,6 +99,31 @@ namespace Microsoft.DotNet.ProjectJsonMigration.Rules
PrivateAssets = "All"
}), noFrameworkPackageReferenceItemGroup, mergeExisting: false);
break;
case ProjectType.Test:
_transformApplicator.Execute(
PackageDependencyInfoTransform.Transform(
new PackageDependencyInfo
{
Name = PackageConstants.TestSdkPackageName,
Version = PackageConstants.TestSdkPackageVersion
}), noFrameworkPackageReferenceItemGroup, mergeExisting: false);
_transformApplicator.Execute(
PackageDependencyInfoTransform.Transform(
new PackageDependencyInfo
{
Name = PackageConstants.XUnitPackageName,
Version = PackageConstants.XUnitPackageVersion
}), noFrameworkPackageReferenceItemGroup, mergeExisting: false);
_transformApplicator.Execute(
PackageDependencyInfoTransform.Transform(
new PackageDependencyInfo
{
Name = PackageConstants.XUnitRunnerPackageName,
Version = PackageConstants.XUnitRunnerPackageVersion
}), noFrameworkPackageReferenceItemGroup, mergeExisting: false);
break;
default:
break;
}

View file

@ -258,6 +258,28 @@ namespace Microsoft.DotNet.ProjectJsonMigration.Tests
items[0].Include.Should().Be("System");
}
[Fact]
public void It_migrates_test_projects_to_have_test_sdk_and_xunit_packagedependencies()
{
var mockProj = RunPackageDependenciesRuleOnPj(@"
{
""buildOptions"": {
""emitEntryPoint"": true
},
""frameworks"": {
""netcoreapp1.0"": {}
},
""testRunner"": ""xunit""
}");
var items = mockProj.Items
.Where(i => (i.Include == "Microsoft.NET.Test.Sdk" && i.ItemType == "PackageReference") ||
(i.Include == "xunit" && i.ItemType == "PackageReference") ||
(i.Include == "xunit.runner.visualstudio" && i.ItemType == "PackageReference"));
items.Should().HaveCount(3);
}
private void EmitsPackageReferences(ProjectRootElement mockProj, params Tuple<string, string, string>[] packageSpecs)
{
foreach (var packageSpec in packageSpecs)