예제 #1
0
        private static async Task RunAnalysis(ProgramOptions options)
        {
            _logger = new ConsoleLogger(verbose: options.VerboseLogging, debug: options.DebugLogging);
            using (var solLoader = new SolutionLoader(_logger))
            {
                var solution = await solLoader.LoadSolution(options.PathToSolution);

                var extractor       = new SymbolExtractorWithCompilation(_logger);
                var declaredSymbols = await extractor.FindSymbols(solution, options.FullTypeName, options.MethodName, options.MethodArguments);

                _logger.Info($"Did not find anything for {options.FullTypeName}.{options.MethodName}({string.Join(", ", options.MethodArguments)})");
                await ArgumentExtraction(declaredSymbols, solution, options);
            }
        }
        private async Task <ISymbol> GetTestSymbolFor(string methodName)
        {
            var methodParameterMapping = new Dictionary <string, string[]>()
            {
                { "FunctionInLambda", new[] { "int" } },
                { "FunctionInConstructor", new[] { "params", "bool" } },
                { "LocationTest", new[] { "int" } }
            };

            return((await _symbolExtractor.FindSymbols(_solution,
                                                       "Inw.TestData.SymbolProvidingTestClass",
                                                       methodName,
                                                       methodParameterMapping[methodName]))
                   .FirstOrDefault());
        }