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; } }