From 4cd74bff889271d8a2b070c371999ca4dac635ae Mon Sep 17 00:00:00 2001 From: Justin Goshi Date: Mon, 31 Oct 2016 15:55:22 -0700 Subject: [PATCH] Only add the xunit references if the test running is xunit --- .../MigratePackageDependenciesAndToolsRule.cs | 34 +++++++++++-------- ...enThatIWantToMigratePackageDependencies.cs | 22 ++++++++++++ 2 files changed, 41 insertions(+), 15 deletions(-) diff --git a/src/Microsoft.DotNet.ProjectJsonMigration/Rules/MigratePackageDependenciesAndToolsRule.cs b/src/Microsoft.DotNet.ProjectJsonMigration/Rules/MigratePackageDependenciesAndToolsRule.cs index a9d9ef6ac..f6afb51b1 100644 --- a/src/Microsoft.DotNet.ProjectJsonMigration/Rules/MigratePackageDependenciesAndToolsRule.cs +++ b/src/Microsoft.DotNet.ProjectJsonMigration/Rules/MigratePackageDependenciesAndToolsRule.cs @@ -86,7 +86,8 @@ namespace Microsoft.DotNet.ProjectJsonMigration.Rules MigrationSettings migrationSettings, ProjectItemGroupElement noFrameworkPackageReferenceItemGroup) { - var type = migrationRuleInputs.DefaultProjectContext.ProjectFile.GetProjectType(); + var project = migrationRuleInputs.DefaultProjectContext.ProjectFile; + var type = project.GetProjectType(); switch (type) { case ProjectType.Web: @@ -108,21 +109,24 @@ namespace Microsoft.DotNet.ProjectJsonMigration.Rules Version = PackageConstants.TestSdkPackageVersion }), noFrameworkPackageReferenceItemGroup, mergeExisting: false); - _transformApplicator.Execute( - PackageDependencyInfoTransform.Transform( - new PackageDependencyInfo - { - Name = PackageConstants.XUnitPackageName, - Version = PackageConstants.XUnitPackageVersion - }), noFrameworkPackageReferenceItemGroup, mergeExisting: false); + if (project.TestRunner.Equals("xunit", StringComparison.OrdinalIgnoreCase)) + { + _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); + _transformApplicator.Execute( + PackageDependencyInfoTransform.Transform( + new PackageDependencyInfo + { + Name = PackageConstants.XUnitRunnerPackageName, + Version = PackageConstants.XUnitRunnerPackageVersion + }), noFrameworkPackageReferenceItemGroup, mergeExisting: false); + } break; default: break; diff --git a/test/Microsoft.DotNet.ProjectJsonMigration.Tests/Rules/GivenThatIWantToMigratePackageDependencies.cs b/test/Microsoft.DotNet.ProjectJsonMigration.Tests/Rules/GivenThatIWantToMigratePackageDependencies.cs index bb415e986..6684736e9 100644 --- a/test/Microsoft.DotNet.ProjectJsonMigration.Tests/Rules/GivenThatIWantToMigratePackageDependencies.cs +++ b/test/Microsoft.DotNet.ProjectJsonMigration.Tests/Rules/GivenThatIWantToMigratePackageDependencies.cs @@ -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() + { + var mockProj = RunPackageDependenciesRuleOnPj(@" + { + ""buildOptions"": { + ""emitEntryPoint"": true + }, + ""frameworks"": { + ""netcoreapp1.0"": {} + }, + ""testRunner"": ""mstest"" + }"); + + 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(1); + } + [Fact] public void It_migrates_test_projects_to_have_test_sdk_and_xunit_packagedependencies() {