サイトマップ 連絡先 トップに戻る 最初に戻る 前に戻る 次に進む
$Date: 2018-07-07 06:49:13 +0900 (2018/07/07 (土)) $
$Revision: 1347 $

OpenCover の複数の結果を統合

OpenCover のインストール方法に関しては ここ を参照してください。

テストに使用するプログラム

テストプログラムとして https://github.com/m-tmatma/OpenCoverTest を用意しました。
https://github.com/m-tmatma/OpenCoverTest.git を git clone して OpenCoverTest2\OpenCoverTest2.sln を開いてコンパイルします。
namespace OpenCoverTest2
{
    class Program
    {
        static void Main(string[] args)
        {
            if (args.Length > 0)
            {
                try
                {
                    int index = Int32.Parse(args[0]);
                    Console.WriteLine(Class1.GetString(index));
                }
                catch (FormatException)
                {
                    Console.WriteLine("{0}: Bad Format", args[0]);
                }
                catch (OverflowException)
                {
                    Console.WriteLine("{0}: Overflow", args[0]);
                }
            }
        }
    }
}
namespace OpenCoverTest2
{
    public class Class1
    {
        public static string GetString(int index)
        {
            if (index == 0)
            {
                return "String1";
            }
            else
            {
                return "String2";
            }
        }
    }
}

複数の実行結果をマージして結果に整形する

-output で出力先の xml ファイルを指定する
コマンドライン引数で 0 を渡す
C:\gitwork\OpenCoverTest\OpenCoverTest2\bin\Debug>OpenCover.Console.exe -target:"OpenCoverTest2.exe" -register:user "-targetargs:0" -output:results0.xml
Executing: C:\gitwork\OpenCoverTest\OpenCoverTest2\bin\Debug\OpenCoverTest2.exe
String1
Committing...
Visited Classes 2 of 2 (100)
Visited Methods 2 of 2 (100)
Visited Points 14 of 24 (58.33)
Visited Branches 4 of 6 (66.67)

==== Alternative Results (includes all methods including those without corresponding source) ====
Alternative Visited Classes 2 of 2 (100)
Alternative Visited Methods 2 of 4 (50)
-output で出力先の xml ファイルを指定する
コマンドライン引数で 1 を渡す
C:\gitwork\OpenCoverTest\OpenCoverTest2\bin\Debug>OpenCover.Console.exe -target:"OpenCoverTest2.exe" -register:user "-targetargs:1" -output:results1.xml
Executing: C:\gitwork\OpenCoverTest\OpenCoverTest2\bin\Debug\OpenCoverTest2.exe
String2
Committing...
Visited Classes 2 of 2 (100)
Visited Methods 2 of 2 (100)
Visited Points 14 of 24 (58.33)
Visited Branches 4 of 6 (66.67)

==== Alternative Results (includes all methods including those without corresponding source) ====
Alternative Visited Classes 2 of 2 (100)
Alternative Visited Methods 2 of 4 (50)
* 指定で複数の結果ファイルを指定して HTML に整形する
C:\gitwork\OpenCoverTest\OpenCoverTest2\bin\Debug>ReportGenerator.exe  --reports:results*.xml --targetdir:html3
Loading report 'C:\gitwork\OpenCoverTest\OpenCoverTest2\bin\Debug\results0.xml'
 Preprocessing report
 Initiating parser for OpenCover
  Current Assembly: ClassLibrary
  Current Assembly: OpenCoverTest2
Loading report 'C:\gitwork\OpenCoverTest\OpenCoverTest2\bin\Debug\results1.xml'
 Preprocessing report
 Initiating parser for OpenCover
  Current Assembly: ClassLibrary
  Current Assembly: OpenCoverTest2
Initializing report builders for report types: Html
Analyzing 2 classes
 Creating report 1/2 (Assembly: ClassLibrary, Class: OpenCoverTest2.Class1)
 Creating report 2/2 (Assembly: OpenCoverTest2, Class: OpenCoverTest2.Program)
 Creating summary
Report generation took 0.4 seconds

テスト結果

生成した html ファイル です。