0

コード カバレッジが特定の値を超えていることを確認するために、カスタムの TFS チェックイン ポリシーに取り組んでいます。いくつかの例を見つけたので、それらを VS 2010 で動作させようとしています。

現在、実行中のコードがいくつかあり、実際に遅いことを除いて動作しているようです。どの回線が「最も遅い」かを言うのは難しいです。多分それはデータの量です。

このコードを最適化する方法を誰かが知っていますか?

 private static decimal CalculateTotalCodeCoverage(string binariesFolder, string codeCoverageFile)
 {
 int blocksCovered = 0;
 int blocksNotCovered = 0;

 using (CoverageInfo info = CoverageInfo.CreateFromFile(codeCoverageFile,
     new string[] { binariesFolder },
     new string[] { binariesFolder }))
 {
     List<BlockLineRange> lines = new List<BlockLineRange>();

     foreach (ICoverageModule module in info.Modules)
     {
         byte[] coverageBuffer = module.GetCoverageBuffer(null);

         using (ISymbolReader reader = module.Symbols.CreateReader())
         {
             uint methodId;
             string methodName;
             string undecoratedMethodName;
             string className;
             string namespaceName;

             lines.Clear();
             while (reader.GetNextMethod(
                 out methodId,
                 out methodName,
                 out undecoratedMethodName,
                 out className,
                 out namespaceName,
                 lines))
             {
                 CoverageStatistics stats = CoverageInfo.GetMethodStatistics(coverageBuffer, lines);

                 blocksCovered += stats.BlocksCovered;
                 blocksNotCovered += stats.BlocksNotCovered;
             }
         }
     }
 }

 return GetPercentCoverage(blocksCovered, blocksNotCovered);

}

4

0 に答える 0