Я в настоящее время исследую решение для подсчета строк кода в C#.
Мне в значительной степени нужна комбинация следующих двух инструментов:
http://richnewman.wordpress.com/2007/07/01/c-and-vbnet-line-count-utility/
http://www.locmetrics.com/index.html
Моя проблема состоит в том, что я должен рекурсивно просканировать папку, содержащую много решений для Visual Studio. Так не может действительно использовать первый инструмент ни без какой основной работы над ее кодом, поскольку это только может просканировать единое решение за один раз.
Но я также должен разделить результаты для каждого решения, предпочтительно даже содержавшие проекты. Это дисквалифицирует второй инструмент, который я нашел. Я также нашел NDepend, который страдает от той же проблемы.
Вы знаете о каких-либо бесплатных инструментах, которые делают то, в чем я нуждаюсь? Я не могу найти что-либо подходящим.
NDepend - отличный инструмент, предназначенный для измерения и визуализации показателей и сложности кода.
Powershell сделает это:
(dir -Include *.cs -Recurse | select-string .).Count
Подсчет строк исходного кода в PowerShell :
Количество строк на путь:
gci . *.cs -Recurse | select-string . | Group Path
Мин. / Макс. / Средние:
gci . *.cs -Recurse | select-string . | Group Filename | Measure-Object Count -Min -Max -Average
Соотношение комментариев:
$items = gci . *.cs -rec; ($items | select-string "//").Count / ($items | select-string .).Count
## Count the number of lines in all C# files in (and below)
## the current directory.
function CountLines($directory)
{
$pattern = "*.cs"
$directories = [System.IO.Directory]::GetDirectories($directory)
$files = [System.IO.Directory]::GetFiles($directory, $pattern)
$lineCount = 0
foreach($file in $files)
{
$lineCount += [System.IO.File]::ReadAllText($file).Split("`n").Count
}
foreach($subdirectory in $directories)
{
$lineCount += CountLines $subdirectory
}
$lineCount
}
CountLines (Get-Location)
Кроме того, Счетчик строк
Что вам нужно, так это логический подсчет строк кода, как определено здесь: Как подсчитать количество строк кода (LOC)
Если вы используете NDepend для подсчета количества строк кода, вы можете добавить все ваши VS sln в проект NDepend. Однако логические строки кода - это метрика, вычисляемая из PDB-файлов, поэтому убедитесь, что все ваши сборки имеют соответствующие PDB-файлы.
Также вас может заинтересовать:Почему полезно считать количество строк кода (LOC)?
В конце концов я выбрал LocMetrics , к сожалению, это не решило мою проблему для каждого решения.
Но структура папок репозитория достаточно хорошо соответствует решениям, поэтому я решил использовать инструмент, описанный выше.
Спасибо всем за помощь