Как автоматизировать функцию Code Metrics Visual Studio

Добавьте пробел после -i

awk old file | grep -i "key"  | cut -f 2 >new.txt

P.S. И почему вы не добавляете действие grep и cut в логику awk?

На основании комментариев может понадобиться что-то вроде:

awk '/key/ {print $2}' old_file.txt >new.txt

(при условии, что разделитель пробел)

Вот один пример:

# cat a2
key 1
orange 2
cool 3
key 4
# grep key a2 >a2.out

или с awk

awk '/key/ {print}' a2 >a2.out
# cat a2.out
1
4
11
задан Kent Fredric 10 December 2008 в 05:10
поделиться

2 ответа

Это - то, как моя компания автоматизировала FxCop с помощью MSBuild:

<!-- The directory where FxCop is installed. -->
<FxCopDirectory>C:\Program Files\Microsoft FxCop 1.36</FxCopDirectory>

<!-- The FxCop console executable.. -->
<FxCopCmd>$(FxCopDirectory)\FxCopCmd</FxCopCmd>

<Target Name="CodeAnalysis>
<!-- Once to get XML for metrics. -->
<Exec Command="&quot;$(FxCopCmd)&quot; /p:&quot;$(BuildDirectory)\FxCop\RuleSet.FxCop&quot; /out:$(BuildResults)\FxCop.xml /summary /verbose /f:$(Binaries)\@(CodeAnalysis, ' /f:$(Binaries)\')" />

<!-- Once to report with the build results. -->
<Exec Command="&quot;$(FxCopCmd)&quot; /p:&quot;$(BuildDirectory)\FxCop\RuleSet.FxCop&quot; /out:$(BuildResults)\FxCop.html /summary /verbose /applyoutXsl:$(MSBuildTasks)\CodeAnalysisReport.xsl /f:$(Binaries)\@(CodeAnalysis, ' /f:$(Binaries)\')" />

<!-- Update the FxCop report so that it is fully expanded by default. -->
<FileUpdate Regex="&lt;body\s"
            ReplacementText="&lt;body onLoad=&quot;ExpandAll();&quot; "
            Files="$(BuildResults)\FxCop.html" />
</Target>

Затем можно написать некоторый код C# для потребления выходного файла:

/// <summary>
/// Gather metrics for code analysis.
/// </summary>
private static void GatherCodeAnalysisMetrics()
{
    string file = @"$(BuildResults)\FxCop.xml";
    if (!File.Exists(file)) return;
    System.Xml.XmlDocument document = new System.Xml.XmlDocument();
    document.Load(file);
    System.Xml.XmlNodeList list = document.SelectNodes("//Message");
    codeAnalysisWarnings = list.Count;

    Console.WriteLine("Code analysis warnings: " + codeAnalysisWarnings);
}
5
ответ дан 3 December 2019 в 07:39
поделиться

jgwood - я полагаю, что он относится для Кодирования Метрик (цикломатическая сложность, и т.д.) и не FxCop. Я искал решение для этого также, поскольку правило FxCop для сложности имеет hardcoded threshholds. Это кажется, что еще нет никакой командной строки или API для метрик в VS2008 (на это сообщение на Блоге Команды Анализа кода) - надо надеяться, они выпустят powertool.

Вы посмотрели на NDepend для этого?

2
ответ дан 3 December 2019 в 07:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: