Domanda

Come generare un report HTML dai risultati PartCover .xml

È stato utile?

Soluzione

V'è uno strumento che si può utilizzare per generare un report HTML:

https://github.com/danielpalme/ReportGenerator

Qui potete trovare un articolo come integrare lo strumento in MSBuild:

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

Altri suggerimenti

Per quanto ne so, non esiste uno strumento pratico come NCoverExplorer che può trasformare un risultato PartCover .xml in un report html, ma ci sono alcuni file xsl che possono essere utilizzati per trasformare i risultati di PartCover per .html in CruiseControl. NET: Utilizzando CruiseControl.NET con PartCover .

Si potrebbe prendere quei file .xsl da CruiseControl.NET e convertire il vostro results.xml PartCover usando qualcosa come Sandcastle s 'XslTransform.exe.

A proposito, se questo accade a essere correlato alla TeamCity, l'imminente release 5.0 includerà il supporto per la copertura .NET utilizzando PartCover o NCover. Vedere le per maggiori informazioni. In caso contrario, ignorare questo paragrafo; -)

soluzione più semplice è probabilmente quello di usare msxsl, un semplice trasformatore di linea di comando. Io lo uso proprio per questo scopo, ed è facile da integrare nel vostro sistema di compilazione.

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

Forse un modo complicato di farlo, ma ho fatto questo con la relazione xml Simian. Creato un file XSL per la formattazione, poi ha scritto un'applicazione console po 'stupido;

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;
    }

Allora posso chiamare da un MSBuild file in questo modo;

 <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>

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top