diff --git a/src/DynamoCore/Core/NodeModelAssemblyLoader.cs b/src/DynamoCore/Core/NodeModelAssemblyLoader.cs
index 1a9244cbfee..26cc971aa82 100644
--- a/src/DynamoCore/Core/NodeModelAssemblyLoader.cs
+++ b/src/DynamoCore/Core/NodeModelAssemblyLoader.cs
@@ -79,8 +79,12 @@ private void OnAssemblyLoaded(Assembly assem)
}
}
+ ///
+ /// Should be used only in tests
+ ///
+ internal static event Func shouldLoadAssemblyPath;
#endregion
-
+
#region Methods
///
/// Load all types which inherit from NodeModel whose assemblies are located in
@@ -131,6 +135,13 @@ var assembly in
var result = new List();
var result2 = new List();
+ if (Models.DynamoModel.IsTestMode)
+ {
+ if (shouldLoadAssemblyPath != null) {
+ allDynamoAssemblyPaths = allDynamoAssemblyPaths.Where((path) => shouldLoadAssemblyPath(path)).ToList();
+ }
+ }
+
foreach (var assemblyPath in allDynamoAssemblyPaths)
{
var fn = Path.GetFileName(assemblyPath);
diff --git a/test/DynamoCoreTests/Setup.cs b/test/DynamoCoreTests/Setup.cs
index 51a8589d12b..7f9b2a8abd2 100644
--- a/test/DynamoCoreTests/Setup.cs
+++ b/test/DynamoCoreTests/Setup.cs
@@ -1,6 +1,7 @@
using System;
using System.IO;
using System.Reflection;
+using Dynamo.Models;
using Dynamo.Utilities;
using NUnit.Framework;
@@ -9,6 +10,20 @@ public class Setup
{
private AssemblyHelper assemblyHelper;
+ ///
+ /// Skip loading WPF nodes during DynamoCore tests because they will fail to load and will generate too many useless logs
+ ///
+ ///
+ ///
+ private bool NodeModelAssemblyLoader_shouldLoadAssemblyPath(string assemblyPath)
+ {
+ if (assemblyPath.Contains("WPF", StringComparison.OrdinalIgnoreCase) || assemblyPath.Contains("UI", StringComparison.OrdinalIgnoreCase))
+ {
+ return false;
+ }
+ return true;
+ }
+
[OneTimeSetUp]
public void RunBeforeAllTests()
{
@@ -24,6 +39,7 @@ public void RunBeforeAllTests()
assemblyHelper = new AssemblyHelper(moduleRootFolder.FullName, resolutionPaths);
AppDomain.CurrentDomain.AssemblyResolve += assemblyHelper.ResolveAssembly;
+ NodeModelAssemblyLoader.shouldLoadAssemblyPath += NodeModelAssemblyLoader_shouldLoadAssemblyPath;
}
[OneTimeTearDown]
@@ -31,5 +47,6 @@ public void RunAfterAllTests()
{
AppDomain.CurrentDomain.AssemblyResolve -= assemblyHelper.ResolveAssembly;
assemblyHelper = null;
+ NodeModelAssemblyLoader.shouldLoadAssemblyPath -= NodeModelAssemblyLoader_shouldLoadAssemblyPath;
}
}