0

PartCover 結果 .xml から HTML レポートを生成する方法

4

4 に答える 4

5

HTML レポートの生成に使用できるツールがあります。

https://github.com/danielpalme/ReportGenerator

ツールを MSBuild に統合する方法については、次の記事を参照してください。

http://www.palmmedia.de/Blog/2009/10/30/msbuild-code-coverage-analysis-with-partcover-and-reportgenerator

于 2009-11-05T12:29:43.373 に答える
1

私の知る限り、PartCoverの結果の.xmlファイルを.htmlレポートに変換できるNCoverExplorerのような便利なツールはありませんが、CruiseControl.NETでPartCoverの結果を.htmlに変換するために使用できる.xslファイルがいくつかあります。 PartCoverを使用したCruiseControl.NET

これらの.xslファイルをCruiseControl.NETから取得し、 SandcastleのXslTransform.exeなどを使用してPartCoverresults.xmlを変換できます。

ちなみに、これがTeamCityに関連している場合、次の5.0リリースには、PartCoverまたはNCoverを使用した.NETカバレッジのサポートが含まれます。詳細については、ドキュメントを参照してください。それ以外の場合は、この段落を無視してください;-)

于 2009-08-27T06:51:17.640 に答える
1

最も簡単な解決策は、単純なコマンド ライン トランスフォーマーである msxsl を使用することです。私はまさにこの目的のためにそれを使用しており、ビルドシステムに簡単に統合できます。

http://www.microsoft.com/downloads/details.aspx?FamilyID=2FB55371-C94E-4373-B0E9-DB4816552E41&displaylang=en

于 2009-10-05T19:58:47.903 に答える
0

複雑な方法かもしれませんが、Simian xml レポートでこれを行いました。書式設定用の XSL ファイルを作成してから、馬鹿げた小さなコンソール アプリケーションを作成しました。

private const string MissingExtension = "Please enter a valid {0} file, this is missing the extension.";
    private const string InvalidExtension = "Please enter a valid {0} file, the file provided has an invalid extension.";

    public static void Main(string[] args)
    {
        if (args.Length < 2)
        {
            System.Console.WriteLine("Please enter a xsl file and xml file full path.");
            return;
        }

        var xslFile = args[0];
        var xmlFile = args[1];

        if (!CheckFileNameFormat(xslFile, false))
            return;
        if (!CheckFileNameFormat(xmlFile, true))
            return;

        var transform = new XslCompiledTransform();
        // Load the XSL stylesheet.
        transform.Load(xslFile);
        // Transform xml file into an html using the xsl file provided.
        transform.Transform(xmlFile, xmlFile.Replace("xml", "html"));
    }

    private static bool CheckFileNameFormat(string fileName, bool isXmlFile)
    {
        var extension = isXmlFile ? "xml" : "xsl";

        // valida that the argument has a period
        if (fileName.IndexOf(".") < 1)
        {
            System.Console.WriteLine(string.Format(MissingExtension, extension));
            return false;
        }

        var filePieces = fileName.Split('.');
        // split on the period and make sure the extension is valid
        if (filePieces[filePieces.GetUpperBound(0)] != extension)
        {
            System.Console.WriteLine(string.Format(InvalidExtension, extension));
            return false;
        }

        return true;
    }

次に、MSBuild ファイルから次のように呼び出すことができます。

 <Target Name="RunSimian" DependsOnTargets="RebuildSolution">

<Exec IgnoreExitCode="true" Command="&quot;$(MSBuildProjectDirectory)\..\Build\Packages\Simian\simian-2.2.24.exe&quot; -formatter=xml:$(MSBuildProjectDirectory)\..\Build\Artifacts\simian.xml -language=cs -excludes=$(MSBuildProjectDirectory)\..\Product\Production\**\*.Designer.cs $(MSBuildProjectDirectory)\Production\**\*.cs" >
</Exec>

<Exec IgnoreExitCode="true" Command="&quot;$(MSBuildProjectDirectory)\..\Build\Packages\XmlToHtmlConverter.exe&quot; $(MSBuildProjectDirectory)\..\Build\Packages\Simian\simian.xsl $(MSBuildProjectDirectory)\..\Build\Artifacts\simian.xml">
</Exec>

于 2009-09-23T23:06:29.560 に答える