Migrate: add package dependencies to test projects
This commit is contained in:
parent
5a621b53e2
commit
4ea37c91a8
5 changed files with 59 additions and 1 deletions
|
@ -7,5 +7,11 @@ namespace Microsoft.DotNet.ProjectJsonMigration
|
||||||
{
|
{
|
||||||
public const string SdkPackageName = "Microsoft.NET.Sdk";
|
public const string SdkPackageName = "Microsoft.NET.Sdk";
|
||||||
public const string WebSdkPackageName = "Microsoft.NET.Sdk.Web";
|
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";
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -18,6 +18,10 @@ namespace Microsoft.DotNet.ProjectJsonMigration
|
||||||
{
|
{
|
||||||
projectType = ProjectType.Web;
|
projectType = ProjectType.Web;
|
||||||
}
|
}
|
||||||
|
else if (project.IsTestProject)
|
||||||
|
{
|
||||||
|
projectType = ProjectType.Test;
|
||||||
|
}
|
||||||
|
|
||||||
return projectType;
|
return projectType;
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,7 @@ namespace Microsoft.DotNet.ProjectJsonMigration
|
||||||
internal enum ProjectType
|
internal enum ProjectType
|
||||||
{
|
{
|
||||||
Console,
|
Console,
|
||||||
Web
|
Web,
|
||||||
|
Test
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -99,6 +99,31 @@ namespace Microsoft.DotNet.ProjectJsonMigration.Rules
|
||||||
PrivateAssets = "All"
|
PrivateAssets = "All"
|
||||||
}), noFrameworkPackageReferenceItemGroup, mergeExisting: false);
|
}), noFrameworkPackageReferenceItemGroup, mergeExisting: false);
|
||||||
break;
|
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:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -258,6 +258,28 @@ namespace Microsoft.DotNet.ProjectJsonMigration.Tests
|
||||||
items[0].Include.Should().Be("System");
|
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)
|
private void EmitsPackageReferences(ProjectRootElement mockProj, params Tuple<string, string, string>[] packageSpecs)
|
||||||
{
|
{
|
||||||
foreach (var packageSpec in packageSpecs)
|
foreach (var packageSpec in packageSpecs)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue