Современные подходы к разработке программного обеспечения делают большой упор на контроль качества. Теперь недостаточно, как раньше, просто писать код, нужно убедиться в том, что этот код правильно написан.
Важным моментом является анализ покрытия кода, причем желательно построчно, чтобы видеть, какие участки кода не тестируются и иметь возможность быстро исправлять ситуацию.
Проводить подробный анализ покрытия помогает инструмент OpenCover. Он работает с кодом на C#.
Чтобы начать пользоваться OpenCover, достаточно скачать исходники и собрать, используя Visual Studio. OpenCover являет собой консольное приложение, все необходимые опции задаются параметрами командной строки.
OpenCover запускается вместе с прогоном юнит-тестов. Команда на запуск тестов передается ему в качестве нескольких параметров:
- -target:%application% — приложение, которое нужно запустить.
- -targetdir:%path% — папка, в которой нужно запустить %application%
- -targetargs:%args% — параметры, передаваемые %application%
Кроме того, у OpenCover есть еще аргументы, регулирующие непосредственно его работу, например:
- -output:%path% — указывает, куда поместить отчет
- -filter:%filters% — Определяет, что учитывать при анализе.
- -register — Динамическая регистрация сборки OpenCover.Profiler, необходимо для работы приложения.
При получении отчета в формате xml, который содержит очень подробные сведения о покрытии нашего кода, есть проблема — он абсолютно нечитабелен. Чтобы увидеть, что и как покрыто есть инструмент под названием ReportGenerator. В использовании ReportGenerator очень прост. Это также консольное приложение, принимающее несколько параметров, например:
- -reports:%reports% — Исходные файлы отчетов, если их несколько, разделяем точкой с запятой
- -targetdir:%path% — Указывает, куда поместить сгенерированые отчеты
- -reporttypes:%types% — Типы генерируемых отчетов.