Как найти все методы в решении C#

Мне нужно перечислить все имена методов и их модульные тесты в решении / проекте C#.

У вас есть идеи по этому поводу?

Обновление: Знаете ли вы какой-нибудь C# source parser?

2 ответа

Похоже, вам нужен инструмент покрытия кода, который анализирует ваше решение и показывает, какие строки кода проверены, а какие нет. Взгляните на NCover, TestDriven.NET или NCrunch.

Имейте в виду, что простого нахождения имен модульных тестов для какого-либо метода недостаточно, поскольку у метода может быть много путей выполнения кода внутри, а некоторые из них могут не быть покрыты тестами.

Вы можете использовать отражение, чтобы найти все методы (Assembly.GetTypes() возвращает все типы, type.GetMethods() возвращает свои методы). Поскольку модульные тесты также являются программами, вы можете перебирать методы модульного тестирования, ища [TestMethodAttribute] (в зависимости от того, какой тестовый фреймворк вы используете) с method.GetCustomAttributes(),

Однако выяснить, что делает каждый метод тестирования, намного сложнее, поскольку у вас нет ограничений на содержание теста. Инструмент покрытия кода может точно показать, какие части вашего кода тестируются, даже части внутри каждого метода (какие ветви if заявления покрыты, например).

В визуальных студиях есть окно под названием "Просмотр ресурсов", оно перечислит все классы и методы в древовидной структуре, а затем, когда оно выбрано, переместит курсор к нужному файлу / строке.

Другие вопросы по тегам