Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJérémie Laval <jeremie.laval@gmail.com>2017-08-14 21:58:07 +0300
committerJérémie Laval <jeremie.laval@gmail.com>2017-08-14 23:45:17 +0300
commitf07659c22f1fd45d76d439e305e739afa7564d71 (patch)
tree733674bd90f38038587588155d0caaf0e725b9a0 /main/src/addins/MonoDevelop.UnitTesting.NUnit
parent57618ee76560cb6369e36667e84e024001b48b0c (diff)
[NUnit] Recognize unit-test projects when using PackageReference NuGet references instead of packages.config
This needed to use some (currently) internal types of MonoDevelop.PackageManagement for which a temporary InternalsVisibleTo was added.
Diffstat (limited to 'main/src/addins/MonoDevelop.UnitTesting.NUnit')
-rw-r--r--main/src/addins/MonoDevelop.UnitTesting.NUnit/AddinInfo.cs1
-rw-r--r--main/src/addins/MonoDevelop.UnitTesting.NUnit/MonoDevelop.UnitTesting.NUnit.csproj5
-rw-r--r--main/src/addins/MonoDevelop.UnitTesting.NUnit/MonoDevelop.UnitTesting.NUnit/NUnitProjectTestSuite.cs25
3 files changed, 29 insertions, 2 deletions
diff --git a/main/src/addins/MonoDevelop.UnitTesting.NUnit/AddinInfo.cs b/main/src/addins/MonoDevelop.UnitTesting.NUnit/AddinInfo.cs
index 6a99bf020a..5de61bfd30 100644
--- a/main/src/addins/MonoDevelop.UnitTesting.NUnit/AddinInfo.cs
+++ b/main/src/addins/MonoDevelop.UnitTesting.NUnit/AddinInfo.cs
@@ -14,3 +14,4 @@ using Mono.Addins.Description;
[assembly:AddinDependency ("Core", MonoDevelop.BuildInfo.Version)]
[assembly:AddinDependency ("Ide", MonoDevelop.BuildInfo.Version)]
[assembly:AddinDependency ("UnitTesting", MonoDevelop.BuildInfo.Version)]
+[assembly:AddinDependency ("PackageManagement", MonoDevelop.BuildInfo.Version)]
diff --git a/main/src/addins/MonoDevelop.UnitTesting.NUnit/MonoDevelop.UnitTesting.NUnit.csproj b/main/src/addins/MonoDevelop.UnitTesting.NUnit/MonoDevelop.UnitTesting.NUnit.csproj
index 30b3da6b60..42d7e3d3f2 100644
--- a/main/src/addins/MonoDevelop.UnitTesting.NUnit/MonoDevelop.UnitTesting.NUnit.csproj
+++ b/main/src/addins/MonoDevelop.UnitTesting.NUnit/MonoDevelop.UnitTesting.NUnit.csproj
@@ -70,6 +70,11 @@
<Name>MonoDevelop.UnitTesting</Name>
<Private>False</Private>
</ProjectReference>
+ <ProjectReference Include="..\MonoDevelop.PackageManagement\MonoDevelop.PackageManagement.csproj">
+ <Project>{F218643D-2E74-4309-820E-206A54B7133F}</Project>
+ <Name>MonoDevelop.PackageManagement</Name>
+ <Private>False</Private>
+ </ProjectReference>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MonoDevelopNUnit.addin.xml">
diff --git a/main/src/addins/MonoDevelop.UnitTesting.NUnit/MonoDevelop.UnitTesting.NUnit/NUnitProjectTestSuite.cs b/main/src/addins/MonoDevelop.UnitTesting.NUnit/MonoDevelop.UnitTesting.NUnit/NUnitProjectTestSuite.cs
index 1d88381efb..92f49b88b9 100644
--- a/main/src/addins/MonoDevelop.UnitTesting.NUnit/MonoDevelop.UnitTesting.NUnit/NUnitProjectTestSuite.cs
+++ b/main/src/addins/MonoDevelop.UnitTesting.NUnit/MonoDevelop.UnitTesting.NUnit/NUnitProjectTestSuite.cs
@@ -43,6 +43,7 @@ using System.Reflection;
using MonoDevelop.Ide.Gui.Components;
using MonoDevelop.Core.Assemblies;
using MonoDevelop.Core;
+using MonoDevelop.PackageManagement;
namespace MonoDevelop.UnitTesting.NUnit
{
@@ -80,8 +81,8 @@ namespace MonoDevelop.UnitTesting.NUnit
if (!project.ParentSolution.GetConfiguration (IdeApp.Workspace.ActiveConfiguration).BuildEnabledForItem (project))
return null;
- foreach (var p in project.References) {
- var nv = GetNUnitVersion (p);
+ foreach (var item in project.Items) {
+ var nv = GetNUnitVersion (item);
if (nv != null)
return new NUnitProjectTestSuite (project, nv.Value);
}
@@ -93,6 +94,17 @@ namespace MonoDevelop.UnitTesting.NUnit
return GetNUnitVersion (p).HasValue;
}
+ public static NUnitVersion? GetNUnitVersion (ProjectItem item)
+ {
+ switch (item) {
+ case ProjectReference pr:
+ return GetNUnitVersion (pr);
+ case ProjectPackageReference ppr:
+ return GetNUnitVersion (ppr);
+ }
+ return null;
+ }
+
public static NUnitVersion? GetNUnitVersion (ProjectReference p)
{
if (p.Reference.IndexOf ("GuiUnit", StringComparison.OrdinalIgnoreCase) != -1 || p.Reference.StartsWith ("nunitlite", StringComparison.OrdinalIgnoreCase))
@@ -118,6 +130,15 @@ namespace MonoDevelop.UnitTesting.NUnit
return null;
}
+ internal static NUnitVersion? GetNUnitVersion (ProjectPackageReference p)
+ {
+ if (p.Include.IndexOf ("GuiUnit", StringComparison.OrdinalIgnoreCase) != -1)
+ return NUnitVersion.NUnit2;
+ if (p.Include.IndexOf ("nunit.framework", StringComparison.OrdinalIgnoreCase) != -1)
+ return p.IsAtLeastVersion (new Version (3, 0)) ? NUnitVersion.NUnit3 : NUnitVersion.NUnit2;
+ return null;
+ }
+
protected override SourceCodeLocation GetSourceCodeLocation (string fixtureTypeNamespace, string fixtureTypeName, string testName)
{
if (string.IsNullOrEmpty (fixtureTypeName))