From 84d1413225605d4f10a2d43d3e4c3e37d4725ea6 Mon Sep 17 00:00:00 2001 From: Artem Utin Date: Wed, 3 Aug 2022 23:16:01 +1000 Subject: [PATCH] Passing only new types to AddTypesToNamespace load task Signed-off-by: Artem Utin --- ArchUnitNET/Loader/ArchBuilder.cs | 4 +++- ArchUnitNETTests/Loader/ArchLoaderTests.cs | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/ArchUnitNET/Loader/ArchBuilder.cs b/ArchUnitNET/Loader/ArchBuilder.cs index b432b0a22..a94506a36 100644 --- a/ArchUnitNET/Loader/ArchBuilder.cs +++ b/ArchUnitNET/Loader/ArchBuilder.cs @@ -73,6 +73,7 @@ public void LoadTypesForModule(ModuleDefinition module, string namespaceFilter) types.AddRange(nestedTypes); } + var currentTypes = new List(types.Count); types.Where(typeDefinition => RegexUtils.MatchNamespaces(namespaceFilter, typeDefinition.Namespace) && typeDefinition.CustomAttributes.All(att => att.AttributeType.FullName != "Microsoft.VisualStudio.TestPlatform.TestSDKAutoGeneratedCode")) @@ -81,6 +82,7 @@ public void LoadTypesForModule(ModuleDefinition module, string namespaceFilter) var type = _typeFactory.GetOrCreateTypeFromTypeReference(typeDefinition); if (!_architectureTypes.Contains(type) && !type.IsCompilerGenerated) { + currentTypes.Add(type); _architectureTypes.Add(type); } }); @@ -90,7 +92,7 @@ public void LoadTypesForModule(ModuleDefinition module, string namespaceFilter) .ForEach(ns => { _loadTaskRegistry.Add(typeof(AddTypesToNamespace), - new AddTypesToNamespace(ns, _architectureTypes)); + new AddTypesToNamespace(ns, currentTypes)); }); } diff --git a/ArchUnitNETTests/Loader/ArchLoaderTests.cs b/ArchUnitNETTests/Loader/ArchLoaderTests.cs index f28196d92..62c8237a9 100644 --- a/ArchUnitNETTests/Loader/ArchLoaderTests.cs +++ b/ArchUnitNETTests/Loader/ArchLoaderTests.cs @@ -25,7 +25,7 @@ public void LoadAssemblies() Assert.NotEmpty(ArchUnitNETTestAssemblyArchitectureWithDependencies.Assemblies); } - [Fact(Skip = "This takes very long.")] + [Fact] public void LoadAssembliesIncludingRecursiveDependencies() { var archUnitNetTestArchitectureWithRecursiveDependencies =