PartCover 結果 .xml から HTML レポートを生成する方法
4 に答える
HTML レポートの生成に使用できるツールがあります。
https://github.com/danielpalme/ReportGenerator
ツールを MSBuild に統合する方法については、次の記事を参照してください。
私の知る限り、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カバレッジのサポートが含まれます。詳細については、ドキュメントを参照してください。それ以外の場合は、この段落を無視してください;-)
最も簡単な解決策は、単純なコマンド ライン トランスフォーマーである msxsl を使用することです。私はまさにこの目的のためにそれを使用しており、ビルドシステムに簡単に統合できます。
複雑な方法かもしれませんが、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=""$(MSBuildProjectDirectory)\..\Build\Packages\Simian\simian-2.2.24.exe" -formatter=xml:$(MSBuildProjectDirectory)\..\Build\Artifacts\simian.xml -language=cs -excludes=$(MSBuildProjectDirectory)\..\Product\Production\**\*.Designer.cs $(MSBuildProjectDirectory)\Production\**\*.cs" >
</Exec>
<Exec IgnoreExitCode="true" Command=""$(MSBuildProjectDirectory)\..\Build\Packages\XmlToHtmlConverter.exe" $(MSBuildProjectDirectory)\..\Build\Packages\Simian\simian.xsl $(MSBuildProjectDirectory)\..\Build\Artifacts\simian.xml">
</Exec>