Различают SpecFlow и сборку модульных тестов - PullRequest
0 голосов
/ 11 апреля 2019

Я написал код, который анализирует тестовую DLL и извлекает имена тестов и какие теги они используют, используя отражение.
Первоначально я написал его для анализа DLL-файлов SpecFlow, но, похоже, он отлично работает с DLL-библиотеками модульного тестирования, с некоторыми изменениями.
Оба используют MSTest (VSTest.Console.exe)
Мне интересно, знает ли кто-нибудь, как я могу отличить один тип сборки от другого, чтобы я мог использовать один и тот же код для анализа любого типа сборки, не указывая, какой это тип.
Кроме того, если кто-то знает о существующем инструменте для этого (извлечение списков тестов из DLL), это было бы здорово. У меня такое чувство, будто я, должно быть, заново изобретаю колесо ...

Примеры файлов
Specflow DLL
DLL модульного теста
(Вам, вероятно, нужно щелкнуть их правой кнопкой мыши и разблокировать, чтобы иметь возможность их загружать)

TLDR: Как через код определить, какая из этих библиотек DLL - это Specflow, а какая - модульные тесты?

1 Ответ

1 голос
/ 11 апреля 2019

Да, это было на самом деле довольно просто

        public static bool IsSpecflowDll(Assembly assembly)
        {
            var references = assembly.GetReferencedAssemblies();
            foreach (var reference in references)
            {
                if (reference.Name == "TechTalk.SpecFlow")
                {
                    return true;
                }
            }
            return false;
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...