diff --git a/src/MSBuild.Abstractions/MSBuildHelpers.cs b/src/MSBuild.Abstractions/MSBuildHelpers.cs
index 8146ef8c6..f19c0cb64 100644
--- a/src/MSBuild.Abstractions/MSBuildHelpers.cs
+++ b/src/MSBuild.Abstractions/MSBuildHelpers.cs
@@ -249,14 +249,20 @@ public static bool IsAspNetCore(IProjectRootElement projectRoot, string tfm) =>
///
public static bool IsNETFrameworkMSTestProject(IProjectRootElement projectRoot)
{
+ var packages = GetOrCreatePackageReferencesItemGroup(projectRoot).Items.Select(elem => elem.Include);
var references = projectRoot.ItemGroups.SelectMany(GetReferences)?.Select(elem => elem.Include.Split(',').First());
- if (references is null)
+ if (references is null && packages is null)
{
return false;
}
else
{
- return MSTestFacts.MSTestReferences.All(reference => references.Contains(reference, StringComparer.OrdinalIgnoreCase));
+ var hasTestReference = false;
+ if(references != null)
+ hasTestReference = MSTestFacts.MSTestReferences.All(reference => references.Contains(reference, StringComparer.OrdinalIgnoreCase));
+ if (references != null)
+ hasTestReference = hasTestReference || MSTestFacts.MSTestPackages.All(package => packages.Contains(package, StringComparer.OrdinalIgnoreCase));
+ return hasTestReference;
}
}
diff --git a/src/MSBuild.Conversion.Facts/MSTestFacts.cs b/src/MSBuild.Conversion.Facts/MSTestFacts.cs
index 7b764ff52..212785560 100644
--- a/src/MSBuild.Conversion.Facts/MSTestFacts.cs
+++ b/src/MSBuild.Conversion.Facts/MSTestFacts.cs
@@ -25,6 +25,11 @@ public static class MSTestFacts
"Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions"
);
+ public static ImmutableArray MSTestPackages = ImmutableArray.Create(
+ "MSTest.TestAdapter",
+ "MSTest.TestFramework"
+ );
+
public const string IsCodedUITestNodeName = "IsCodedUITest";
public const string TestProjectTypeNodeName = "TestProjectType";
public const string UnitTestTestProjectType = "UnitTest";