This topic about how I Solved convert XML file which is result of FxCop (Code Analyse Tool) to HTML in Jenkins and publish it as Report.
I recently installed FxCop (Code Analysis Tool) and FxCop Runner plugin for Jenkins. Everything was ok, I got report file as XML format for my projects within Jenkins, but unfortunately, I didn’t found and plugin for view xml file within Jenkins as HTML.
So how I solved this problem:
I created simple console application in C# for converting xml+xsl to HTML with below code and connected it with Jenkins:
using System; using System.IO; using System.Xml.Xsl; namespace XmlToHtml { class Program { static void Main(string[] args) { if (args.Length < 3) { Console.WriteLine("Usage: xml2html.exe xlsfile.xls xmlfile.xml output.html"); return; } if (!File.Exists(args[0]) || !File.Exists(args[1])) { Console.WriteLine(args[0] + " or " + args[1] + " doesn't exist"); return; } XslCompiledTransform xsl = new XslCompiledTransform(); String outputFile = args[2]; xsl.Load(args[0]); xsl.Transform(args[1], args[2]); if (File.Exists(args[2])) Console.WriteLine(args[2] + " successfully created!"); else Console.WriteLine("Couldn't create " + args[2]); } } }
You may download .exe file from here
Save it on your disk as C:\Program Files (x86)\xmltohtml\xmltohtml.exe
In Jenkins, project setting page we should do Add build step > FxCop exec as and fill input like below:
P.S If you don’t see any option in FxCop Name section go to the Manage Jenkins > Global Tool Configuration > FxCop > FxCop installations add Path to the FxCopCmd.exe
Assembly FIle should be .dll file which you want analyse
Output xml is for saving xml report file. You may fill it “fxcop/result.xml”
Then you should add another step for converting xml to html.
So, Click Add build step > Execute Windows batch command and type below
“C:\Program Files (x86)\xmltohtml\xmltohtml.exe” “C:\Program Files (x86)\Microsoft Fxcop 10.0\Xml\CodeAnalysisReport.xsl” “fxcop/result.xml” “fxcop/result.html”
As you see, I call xmltohtml.exe file, then pass 3 parameters to it, first parameter is xsl file which is located in Microsoft Fxcop 10.0\Xml\CodeAnalysisReport.xsl , second parameter is xml file which saved in previous step by FxCop, and third parameter is output file which will be saved as HTML.
Now we may add Add post-build action > Publish HTML reports in Post-build Actions section as below:
After succesfull build, you’ll see FxCop Result in your project page as below:
After clicking to FxCop Result page you should see similar to below page:P.S If page in your browser not correctly view and javascript functions not properly works (Collapse and expand) it is related to Java security that doesn’t allow inline style and javascript functionalities, for solve this problem I run jenkins.war as below format:
java -Dhudson.model.DirectoryBrowserSupport.CSP="sandbox allow-scripts; style-src 'unsafe-inline' *;script-src 'unsafe-inline' *;" -jar jenkins.war
It worked for me.
Great, bing took me stright here. thanks btw for post. Cheers!