protected override void ExploreImpl(IReflectionPolicy reflectionPolicy, ICodeElementInfo codeElement) { IAssemblyInfo assembly = ReflectionUtils.GetAssembly(codeElement); if (assembly == null) { return; } try { NUnitTestExplorerEngine engine; if (!assemblyTestExplorerEngines.TryGetValue(assembly, out engine)) { Assembly loadedAssembly = assembly.Resolve(false); if (Reflector.IsUnresolved(loadedAssembly)) { engine = new NUnitReflectiveTestExplorerEngine(TestModel, assembly); } else { engine = new NUnitNativeTestExplorerEngine(TestModel, loadedAssembly); } assemblyTestExplorerEngines.Add(assembly, engine); bool skipChildren = !(codeElement is IAssemblyInfo); engine.ExploreAssembly(skipChildren); } ITypeInfo type = ReflectionUtils.GetType(codeElement); if (type != null) { engine.ExploreType(type); } } catch (Exception ex) { TestModel.AddAnnotation(new Annotation(AnnotationType.Error, assembly, "An exception was thrown while exploring an NUnit test assembly.", ex)); } }
protected override void ExploreImpl(IReflectionPolicy reflectionPolicy, ICodeElementInfo codeElement) { IAssemblyInfo assembly = ReflectionUtils.GetAssembly(codeElement); if (assembly == null) return; try { NUnitTestExplorerEngine engine; if (!assemblyTestExplorerEngines.TryGetValue(assembly, out engine)) { Assembly loadedAssembly = assembly.Resolve(false); if (Reflector.IsUnresolved(loadedAssembly)) engine = new NUnitReflectiveTestExplorerEngine(TestModel, assembly); else engine = new NUnitNativeTestExplorerEngine(TestModel, loadedAssembly); assemblyTestExplorerEngines.Add(assembly, engine); bool skipChildren = !(codeElement is IAssemblyInfo); engine.ExploreAssembly(skipChildren); } ITypeInfo type = ReflectionUtils.GetType(codeElement); if (type != null) { engine.ExploreType(type); } } catch (Exception ex) { TestModel.AddAnnotation(new Annotation(AnnotationType.Error, assembly, "An exception was thrown while exploring an NUnit test assembly.", ex)); } }