Как узнать количество строк кода в проекте visual studio
В окне Результаты метрик кода отображаются данные, формируемые анализом метрик кода. Дополнительные сведения о значениях данных метрик кода см. в разделе значения метрик кода.
Отображение результатов метрик кода
Окно результатов метрик кода отображается автоматически при формировании результатов метрик кода. Окно также можно отобразить в любое время.
Окно Результаты метрик кода можно отобразить с помощью одной из следующих последовательностей меню:
в меню анализ выберите Windows > результаты метрик кода.
в меню вид выберите другие Windows > результаты метрик кода.
Откроется окно Результаты метрик кода , даже если оно не содержит результатов.
Просмотр сведений о метриках кода
Если результаты метрик кода были сформированы, разверните дерево в столбце Иерархия .
Фильтрация результатов метрик кода
Результаты, отображаемые в окне результатов метрик кода , можно отфильтровать с помощью панели инструментов в верхней части окна. Например, может потребоваться просмотреть только результаты с индексом обслуживания ниже 65.
Раскрывающийся список Фильтр содержит имена столбцов результатов. При определении фильтра он добавляется в конец списка вместе с отступом. Список может содержать последние 10 фильтров, которые были определены.
Фильтрация результатов метрик кода
В списке Фильтр выберите имя столбца.
В поле min (минимум) введите минимальное отображаемое значение.
В поле Макс введите максимальное отображаемое значение.
Чтобы просмотреть сведения о результатах, разверните дерево иерархии.
Добавление, удаление и изменение порядка столбцов данных
Столбцы «результаты» можно добавлять и удалять из окна « Результаты метрик кода ». Кроме того, можно изменить порядок столбцов результатов так, чтобы они отображались в нужном порядке.
Добавление или удаление столбца
В диалоговом окне Добавление или удаление столбцов установите или снимите флажок напротив столбца, который требуется добавить или удалить, а затем нажмите кнопку ОК.
Переупорядочение столбцов
В диалоговом окне Добавление или удаление столбцов выберите столбец, который необходимо переместить, а затем щелкните стрелку вверх или стрелку вниз.
Если столбец расположен в нужном месте, нажмите кнопку ОК.
Копирование данных в буфер обмена или Excel
Вы можете выбрать и скопировать выбранную строку данных метрик кода в буфер обмена как текстовую строку, содержащую одну строку для имени и значения каждого столбца данных. можно также нажать кнопку открыть выделенный фрагмент в Microsoft Excel , чтобы экспортировать все результаты метрик кода в электронную таблицу Excel.
Создание рабочего элемента на основе результатов метрик кода
можно создать Azure Boards рабочий элемент, основанный на результатах в окне результатов метрик кода . при создании рабочего элемента Visual Studio автоматически вводит заголовок в поле title (заголовок ) и данные метрики кода на вкладке журнал .
дополнительные сведения о Azure Boards рабочих элементов см. в разделе рабочие элементы.
Создание рабочего элемента на основе результата
Щелкните результат правой кнопкой мыши.
Наведите указатель мыши на пункт создать рабочий элемент, а затем выберите тип рабочего элемента, который необходимо создать (Ошибка, задача и т. д.).
Заполните форму рабочего элемента, заполнив все обязательные поля.
В меню файл выберите команду сохранить все , чтобы сохранить рабочий элемент.
Создание ошибки на основе результата
Щелкните результат, чтобы выбрать его.
Заполните форму рабочего элемента, заполнив все обязательные поля.
В меню файл выберите команду сохранить все , чтобы сохранить рабочий элемент.
можно ли найти количество строк кода во всем решении? Я слышал о MZ-Tools, но есть ли эквивалент с открытым исходным кодом?
Visual Studio 2010 Ultimate имеет этот встроенный.
Анализ - > Вычислить Метрики Кода
Я нашел powershell полезное для этого. Я считаю LoC довольно фиктивной метрикой в любом случае, поэтому я не считаю, что требуется что-то более формальное.
из каталога небольшого решения:
это будет считать непустые строки во всех решениях .cs и .файл XAML. Для большого проекта, я просто использовал другой список:
зачем использовать все приложение, когда одна командная строка будет делать это? :)
Я Ctrl + Shift + F . Далее ставим \n в поле поиска и включить регулярные выражения. Затем в результатах поиска в конце экрана отображается количество искомых файлов и строк найденного кода.
счетчик строк с открытым исходным кодом для VS2005, 2003 и 2002 доступен здесь:
существует также обсуждение создания подсчета строк VS addin, в комплекте с кодом на Codeproject, здесь
также гладкие гаджеты редактирования имеют хороший счетчик строк, здесь:
и Microsoft Visual Studio Team System 2008 включает в себя хороший счетчик строк.
измерять программируя прогресс линиями кода как измерять прогресс здания воздушных судн весом. Билл Гейтс!--1-->
Не плагин, хотя, если это то, что вы ищете.
вот обновление для Visual Studio 2012/2013/2015 для тех, кто хочет сделать параметр "найти" (который я считаю самым простым): это регулярное выражение найдет все непустые строки с несколькими исключениями, чтобы дать наиболее точные результаты.
введите следующее выражение в поле "Найти". Обязательно выберите опцию "Использовать регулярные выражения". Измените параметр поиска на "текущий проект" или "Все решение" в зависимости от ваших потребностей. Теперь выберите "Найти все". На дно Результаты Поиска окно, вы увидите "соответствующие строки", которые являются строками кода.
это выражение исключает следующие элементы:
многострочные комментарии (при условии, что строки правильно прокомментированы с * Перед каждой строкой)
XML для Технология IntelliSense
открывающей фигурной скобки:
закрытие фигурных скобок:
Примечание: все, что между фигурными скобками будет включено в поиск, но в этом примере будет считаться только 4 строки кода, а не 18 фактических незаполненных строк:
Я создал это дайте мне гораздо более точный подсчет LOC, чем некоторые предыдущие варианты, и я решил поделиться. Боссы любят LOC counts, поэтому я застрял с ним на некоторое время. Я надеюсь, что кто-то еще может найти это полезным, дайте мне знать, если у вас есть какие-либо вопросы или нужна помощь в его работе.
cloc - отличная командная строка, Perl-based, Windows-executable, которая будет разбивать пустые строки, прокомментированные строки и исходные строки кода, сгруппированные по файловым форматам.
теперь он не будет специально запускаться в файле решения VS, но он может рекурсировать через каталоги, и вы можете настроить фильтры файлов по своему усмотрению.
вот пример вывода с их веб-страницы:
эквивалентная шкала третьего поколения является грубой оценка того, сколько кода потребуется в язык третьего поколения. Не очень полезная, но интересная.
ответы здесь немного устарели,может быть, с 2008 года. Поскольку в более новых версиях Visual Studio 2010/2012 эта функция уже встроена. Таким образом, нет никаких причин использовать для этого расширение или инструменты.
функция подсчета строк кода-вычисление метрик. С его помощью вы можете рассчитать свои метрики (LOC, maintaince index, Cyclomatic index, глубина наследования) для каждого проекта или решения.
просто щелкните правой кнопкой мыши на решении или проекте в решении Обозреватель
и выбрать "измерения"
более поздние данные для анализа и агрегирования могут быть импортированы в Excel. Также в Excel вы можете отфильтровать сгенерированные классы или другой шум от ваших метрик. Эти метрики, включая строки кода LOC, могут быть собраны также в процессе сборки и включены в отчет сборки
регулярные выражения изменились между VS2010 и 2012, поэтому большинство решений регулярных выражений здесь больше не работают
использовать Ctrl - shift - f и убедитесь, что регулярные выражения включены.
соответствующее регулярное выражение для VS 2010 и старше
в Visual Studio Team System 2008 Вы можете сделать из меню анализ -> "вычислить метрики кода для решения", и это даст вам количество строк всего вашего решения (среди прочего g)
для будущих читателей, я хотел бы посоветовать расширение DPack для Visual Studio 2010.
у него есть загрузка встроенных утилит, включая счетчик строк,который говорит, сколько строк пусто, код и т. д.
простым решением является поиск во всех файлах. Введите "*" при использовании подстановочных знаков. Что соответствовало бы всем линиям. В конце окна результатов поиска вы увидите строку вида:
Matching lines: 563 Matching files: 17 Total files searched: 17
конечно, это не очень хорошо для больших проектов, так как все строки обрабатываются и загружаются в память, которая будет отображаться в окне результатов поиска.
кто-нибудь слышал о лучшем / более интегрированном способе измерения покрытия кода в сочетании с XUnit ?
несмотря на то, что плакат говорит об этом сайте, я подумал, что все равно было бы лучше иметь эти шаги здесь для процветания.
Примечание: эти инструкции, адаптированные к операционной системе windows, должны легко работать для любых O / S, поддерживаемых OpenCover и ReportGenerator.
- создать твой ASP.NET основной сайт MVC
- обеспечить глобальную.json имеет "тест" в проектах
- щелкните правой кнопкой мыши тестовую папку в решении и добавьте новый проект
- убедитесь, что тип проекта является библиотекой классов .NET Core
- добавьте в свой проект следующее.узел зависимостей json:
- "dotnet-test-xunit": "2.2.0-preview2-build1029",
- "в xUnit": "2.2.0-beta3 в-build3402"
- " Microsoft.CodeCoverage": "1.0.2"
- добавьте в свой проект следующее.в JSON по версии
- "testRunner": "xunit",
- напишите модульные тесты
- скачать OpenCover и Генератор Отчетов
- Установить OpenCover
- извлечь генератор отчетов в OpenCover установить dir в папке под названием генератор отчетов
- создайте файл BAT в своем проекте и вызовите его покрытие.летучая мышь!--16-->
- добавить следующее содержание:
- замените пространство имен пространством имен проектов.
- если несколько проектов, дублируйте регулярное выражение +[*]NAMESPACE.* столько раз, сколько необходимо для каждого пространства имен
- сохраните файл
- Откройте командную строку и убедитесь, что в тестовом проекте
- введите обложку, чтобы запустить модульные тесты и результаты покрытия в формате HTML или что угодно назвал ваш файл bat на шаге 11.
Проверьте Microsoft.CodeCoverage nuget добавлен в ваш тестовый проект
также проверьте проект.JSON-файл в главном проекте, атрибут debugType должен быть " полным "вместо"portable"
исправлено для меня
OpenCover+ReportGenerator. Установите как пакеты NUGET в один из ваших тестовых проектов (один раз, потому что они просто должны появиться в папке пакета).
тогда вы можете запустить его как обычный Powershel скрипт. Результат должен появиться в папке решения в \TestsResults\report\index.HTML-код
Повышенная сложность современных программных приложений также повышает сложность обеспечения надежности и сопровождения кода. Метрики кода представляют собой набор оценок программного обеспечения, которые дают разработчикам более глубокое представление о разрабатываемом коде. Используя преимущества метрик кода, разработчики могут понять, какие типы и методы должны быть переработаны или тщательно протестированы. Группы разработчиков могут выявление потенциальных рисков, понимание текущего состояния проекта и отслеживание хода выполнения во время разработки программного обеспечения.
разработчики могут использовать Visual Studio для создания данных метрик кода, которые измеряют сложность и удобство обслуживания управляемого кода. Данные метрик кода могут создаваться для всего решения или отдельного проекта.
сведения о создании данных метрик кода в Visual Studio см. в разделе инструкции. создание данных метрик кода.
Программные измерения
в следующем списке показаны результаты метрик кода, которые Visual Studio вычисляют:
Индекс удобства обслуживания — вычисляет значение индекса от 0 до 100, представляющее относительную простоту обслуживания кода. Высокое значение означает лучшую сопровождаемость. Для быстрого обнаружения проблем в коде можно использовать цветовую маркировку. Зеленая Оценка находится в диапазоне от 20 до 100 и указывает на то, что код обладает хорошей сопровождаемостью. Желтая Оценка находится в диапазоне от 10 до 19 и указывает, что код является умеренно поддерживаемым. Красная Оценка — это оценка между 0 и 9 и указывает на низкую сопровождаемость. Дополнительные сведения см. в разделе Диапазон индекса для удобства поддержки и значение.
Сложностью организации циклов сложность — измеряет структурную сложность кода. Он создается путем вычисления количества различных путей кода в потоке программы. Программа, имеющая сложный поток управления, требует больше тестов для достижения хорошего объема протестированного кода и менее сопровождаемой. Дополнительные сведения см. в записи Википедии для сложностью организации циклов сложность.
Глубина наследования — указывает количество различных классов, которые наследуют друг от друга, вплоть до базового класса. Глубина наследования аналогична взаимосвязанности классов в том, что изменение базового класса может повлиять на любые из его унаследованных классов. Чем выше это число, тем более глубокое наследование и тем выше вероятность внесения изменений в базовый класс, что приводит к критическому изменению. Для более глубокого наследования низкое значение хорошо, а высокое значение является недопустимым.
Взаимосвязь классов — измеряет связь с уникальными классами через параметры, локальные переменные, возвращаемые типы, вызовы методов, универсальные экземпляры или шаблоны шаблонов, базовые классы, реализации интерфейса, поля, определенные во внешних типах, и декорирование атрибутов. Хорошая разработка программного обеспечения определяет, что типы и методы должны иметь высокую связность и низкую связь. Высокая связь указывает на проект, который трудно использовать и поддерживать из-за множества взаимозависимостей от других типов. Дополнительные сведения см. в разделе соединение классов.
Строки исходного кода — указывает точное число строк исходного кода, имеющихся в исходном файле, включая пустые строки. эта метрика доступна начиная с Visual Studio 2019 версии 16,4 и Microsoft. CodeAnalysis. метрик (2.9.5).
Строки исполняемого кода — указывает приблизительное количество строк или операций исполняемого кода. Это количество операций в исполняемом коде. эта метрика доступна начиная с Visual Studio 2019 версии 16,4 и Microsoft. CodeAnalysis. метрик (2.9.5). Значение обычно является близким к предыдущей метрике, строкам кода, которая является метрикой на основе инструкций языка MSIL, используемой в устаревшем режиме.
Строки кода — указывает приблизительное количество строк в коде. Количество основывается на коде IL и, следовательно, не является точным числом строк в файле исходного кода. Большое число может означать, что тип или метод пытается выполнить слишком много усилий и должны быть разделены. Оно также может указывать на то, что тип или метод может быть трудно поддерживать.
Версия командной строки средства метрики кода считает фактические строки кода, поскольку анализирует исходный код, а не IL.
Анонимные методы
Анонимный метод — это просто метод без имени. Анонимные методы чаще всего используются для передачи блока кода в качестве параметра делегата. Результаты метрик кода для анонимного метода, объявленного в элементе, например метод или метод доступа, связаны с членом, который объявляет метод. Они не связаны с членом, который вызывает метод.
Созданный код
Некоторые программные средства и компиляторы создают код, который добавляется в проект, и разработчик проекта не может видеть или не должен изменять его. В основном метрики кода игнорируют сформированный код при вычислении значений метрик. Это позволяет значениям метрик отражать, что может видеть и изменять разработчик.
код, созданный для Windows Forms, не пропускается, так как это код, который разработчик может просматривать и изменять.
Эти правила по умолчанию отключены, но их можно включить в Обозреватель решений или в файле EditorConfig . Например, чтобы включить правило CA1502 в виде предупреждения, файл EditorConfig будет содержать следующую запись:
Конфигурация
Вы можете настроить пороговые значения, при которых будут срабатывать правила метрики кода.
Создание текстового файла. Например, можно присвоить имя CodeMetricsConfig.txt.
Добавьте необходимые пороговые значения в текстовый файл в следующем формате:
В этом примере правило CA1502 настраивается на срабатывание, когда сложность сложностью организации циклов метода больше 10.
в окне свойства Visual Studio или в файле проекта пометьте действие сборки файла конфигурации как аддитионалфилес. Пример:
Команда меню «вычислить метрики кода»
Создайте метрики кода для одного или всех открытых проектов в интегрированной среде разработки с помощью меню анализ > метрик кода .
Создание результатов метрик кода для всего решения
Вы можете создавать Результаты метрик кода для всего решения одним из следующих способов:
В строке меню выберите анализ > рассчитать метрики кода > для решения.
В Обозреватель решений щелкните правой кнопкой мыши решение и выберите пункт рассчитать метрики кода.
В окне Результаты метрик кода выберите кнопку вычислить метрики кода для решения .
Результаты будут сформированы, и откроется окно результаты метрики кода . Чтобы просмотреть подробные сведения о результатах, разверните дерево в столбце Иерархия .
Создание результатов метрик кода для одного или нескольких проектов
В Обозреватель решений выберите один или несколько проектов.
в строке меню выберите анализ > рассчитать метрики кода > для выбранных Project.
Результаты будут сформированы, и откроется окно результаты метрики кода . Чтобы просмотреть подробные сведения о результатах, разверните дерево в иерархии.
Вместо этого вычислить метрики кода из командной строки
Метрики кода командной строки
пакет Microsoft. CodeAnalysis. metrics NuGet
самый простой способ создать данные метрик кода из командной строки — установить пакет Microsoft. CodeAnalysis. метрики NuGet. После установки пакета запустите msbuild /t:Metrics из каталога, содержащего файл проекта. Пример:
Можно переопределить имя выходного файла, указав /p:MetricsOutputFile= . Вы также можете получить данные метрик кода в стиле прежних версий , указав /p:LEGACY_CODE_METRICS_MODE=true . Пример:
Выходные данные метрик кода
Созданный выход XML имеет следующий формат:
Metrics.exe
если вы не хотите устанавливать пакет NuGet, можно создать и использовать Metrics.exe исполняемый файл напрямую. Чтобы создать Metrics.exe исполняемый файл:
откройте Командная строка разработчика для Visual Studio с правами администратора.
В корне репозитория Roslyn-Analyzers выполните следующую команду: Restore.cmd
Измените каталог на срк\тулс\метрикс.
Выполните следующую команду, чтобы выполнить сборку проекта метрик. csproj :
Исполняемый файл с именем Metrics.exe создается в каталоге артифактс\бин в корне репозитория.
Использование Metrics.exe
Чтобы запустить Metrics.exe, укажите проект или решение и выходной XML-файл в качестве аргументов. Пример:
Устаревший режим
Можно выбрать сборку Metrics.exe в устаревшем режиме. Версия средства в устаревшем режиме создает значения метрик, которые ближе к более старым версиям созданного средства. Кроме того, в устаревшем режиме Metrics.exe создает метрики кода для того же набора типов методов, для которого в предыдущих версиях средства сформированы метрики кода. Например, он не создает данные метрик кода для инициализаторов полей и свойств. Устаревший режим удобен для обеспечения обратной совместимости или при наличии шлюзов возврата кода на основе номеров метрик кода. Команда для сборки Metrics.exe в устаревшем режиме:
предыдущих версий
Visual Studio 2015 включает средство метрик кода командной строки, которое также называется Metrics.exe. Предыдущая версия средства выполняла двоичный анализ, то есть анализ на основе сборок. Более новая версия средства Metrics.exe анализирует исходный код. поскольку более новая Metrics.exe средство является исходным кодом, результаты метрик кода командной строки могут отличаться от результатов, создаваемых интегрированной средой разработки Visual Studio, и предыдущими версиями Metrics.exe. начиная с Visual Studio 2019, интегрированная среда разработки Visual Studio анализирует исходный код, подобный средству командной строки, и результаты должны быть одинаковыми.
Visual Studio 2015 включает средство метрик кода командной строки, которое также называется Metrics.exe. Предыдущая версия средства выполняла двоичный анализ, то есть анализ на основе сборок. Новое средство Metrics.exe анализирует исходный код. поскольку новый инструмент Metrics.exe основан на исходном коде, результаты метрик кода командной строки отличаются от результатов, создаваемых интегрированной средой разработки Visual Studio и предыдущими версиями Metrics.exe.
Новое средство метрик кода командной строки выдает метрики даже при наличии ошибок исходного кода, пока решение и проект могут быть загружены.
Различия в значениях метрик
начиная с Visual Studio 2019 версии 16,4 и Microsoft. CodeAnalysis. метрики (2.9.5), SourceLines ExecutableLines замените предыдущую LinesOfCode метрику. Описание новых метрик см. в разделе значения метрик кода. LinesOfCode Метрика доступна в устаревшем режиме.
Эта LinesOfCode Метрика более точная и надежная в новом инструменте для метрик кода командной строки. Он не зависит от CodeGen различий и не изменяется при изменении набора инструментов или среды выполнения. Новое средство подсчитывает фактические строки кода, включая пустые строки и комментарии.
Другие метрики, такие как CyclomaticComplexity и, MaintainabilityIndex используют те же формулы, что и предыдущие версии Metrics.exe, но новое средство подсчитывает количество IOperations (инструкции логического источника) вместо инструкций промежуточного языка (IL). числа будут немного отличаться от тех, которые создаются Visual Studio IDE и предыдущими версиями Metrics.exe.
Читайте также: