internal Dictionary <string, TestCaseLocation> ResolveAllTestCases(string executable, HashSet <string> testMethodSignatures, string symbolFilterString, string pathExtension)
        {
            var testCaseLocationsFound = FindTestCaseLocationsInBinary(executable, testMethodSignatures, symbolFilterString, pathExtension);

            if (testCaseLocationsFound.Count == 0)
            {
                List <string> imports = PeParser.ParseImports(executable, _logger);

                string moduleDirectory = Path.GetDirectoryName(executable);

                foreach (string import in imports)
                {
                    // ReSharper disable once AssignNullToNotNullAttribute
                    string importedBinary = Path.Combine(moduleDirectory, import);
                    if (File.Exists(importedBinary))
                    {
                        foreach (var testCaseLocation in FindTestCaseLocationsInBinary(importedBinary, testMethodSignatures, symbolFilterString, pathExtension))
                        {
                            testCaseLocationsFound.Add(testCaseLocation.Key, testCaseLocation.Value);
                        }
                    }
                }
            }
            return(testCaseLocationsFound);
        }
        private void LoadSymbolsFromImports()
        {
            List <string> imports         = PeParser.ParseImports(_executable, _logger);
            string        moduleDirectory = Path.GetDirectoryName(_executable);

            foreach (string import in imports)
            {
                // ReSharper disable once AssignNullToNotNullAttribute
                string importedBinary = Path.Combine(moduleDirectory, import);
                if (File.Exists(importedBinary))
                {
                    AddSymbolsFromBinary(importedBinary);
                }
            }
        }
        internal List <TestCaseLocation> ResolveAllTestCases(string executable, List <string> testMethodSignatures, string symbolFilterString, string pathExtension)
        {
            List <TestCaseLocation> testCaseLocationsFound =
                FindTestCaseLocationsInBinary(executable, testMethodSignatures, symbolFilterString, pathExtension).ToList();

            if (testCaseLocationsFound.Count == 0)
            {
                List <string> imports = PeParser.ParseImports(executable, _testEnvironment);

                string moduleDirectory = Path.GetDirectoryName(executable);

                foreach (string import in imports)
                {
                    // ReSharper disable once AssignNullToNotNullAttribute
                    string importedBinary = Path.Combine(moduleDirectory, import);
                    if (File.Exists(importedBinary))
                    {
                        testCaseLocationsFound.AddRange(FindTestCaseLocationsInBinary(importedBinary, testMethodSignatures, symbolFilterString, pathExtension));
                    }
                }
            }
            return(testCaseLocationsFound);
        }