public CirDataAnalysis createCirDataAnalysisObject(List <MethodInfo> methodInfos) { var assemblyDefinitions = new Dictionary <Assembly, AssemblyDefinition>(); ICirData cirData = new CirData(); //foreach(var assemblyToLoad in assembliesToLoad) foreach (MethodInfo methodInfo in methodInfos) { var assembly = methodInfo.DeclaringType.Assembly; if (false == assemblyDefinitions.ContainsKey(assembly)) { var assemblyDefinition = CecilUtils.getAssembly(assembly.Location); if (assemblyDefinition != null) { assemblyDefinitions.Add(assembly, assemblyDefinition); } } if (assemblyDefinitions.ContainsKey(assembly)) { var methodDefinition = CecilConvert.getMethodDefinitionFromMethodInfo(methodInfo, assemblyDefinitions[assembly]); if (methodDefinition != null) { processMethodDefinition(cirData, methodDefinition, null); } } } return(new CirDataAnalysis(cirData)); }
public static IEnumerable <ILoadedXRule> getXRulesWithUnitTests_FromAssemblies(IEnumerable <string> assembliesWithUnitTests) { var xRuleSource = "from Unit Tests"; var xLoadedXRules = new List <ILoadedXRule>(); try { foreach (var file in assembliesWithUnitTests) { var reflectionAssembly = PublicDI.reflection.getAssembly(file); // we will need the reflection assembly object below if (reflectionAssembly != null) { var nUnit_testFixtures = CecilCodeSearch.getTypesWithAttribute(file, nUnit_ClassAttribute); foreach (var nUnit_testFixture in nUnit_testFixtures) { var reflectionType = PublicDI.reflection.getType(reflectionAssembly, nUnit_testFixture.FullName); if (reflectionType != null) { var nUnit_tests = CecilCodeSearch.getMethodsWithAttribute(nUnit_testFixture, nUnit_MethodAttribute); if (nUnit_tests.Count > 0) { var xRule = new KXRule { Name = nUnit_testFixture.Name }; var loadedXRule = new KLoadedXRule(xRule, xRuleSource); foreach (var nUnit_test in nUnit_tests) { var methodInfo = CecilConvert.getMethodInfoFromMethodDefinition(reflectionType, nUnit_test); if (methodInfo != null) { var xRuleAttribute = new XRuleAttribute { Name = nUnit_test.Name }; loadedXRule.methods.Add(xRuleAttribute, methodInfo); } // loadedXRule.methods.Add(xRuleAttribute,test.); } xLoadedXRules.Add(loadedXRule); } } } } } } catch (Exception ex) { PublicDI.log.error("In getXRulesWithUnitTests_FromAssemblies: {0}", ex.Message); } return(xLoadedXRules); }