Ask a Question

Log.SaveResultsAs() do not work for the LogFormat lsJUnit

SOLVED
Felixg
Occasional Contributor

Log.SaveResultsAs() do not work for the LogFormat lsJUnit

Hi everyone,

 

I would like to export JUnit report to see my summary reports in Jenkins.

Of course I read the Log.SaveResultsAs() function documentation, Viewing TestComplete Test Results in Jenkins and also Exporting Test Results , and the related documentations.

 

I want to export my test summary from my scripts using

Log.SaveResultsAs("C:\\Temporary jenkins workspace with spaces\\exports\\results.xml", lsJUnit, True, lesFull)

But it always returns "False", and the summary report is not exported. However, I am not doing something very complicated, and I have just called a function as it is given in the documentation as an example.

 

I also export logs with "lsZip" and "lsPackedHTML log formats with the same call, just adjusting the file name (and extension of course), and in that cases it works correctly.

 

Can you confirm if it is realy a bug of the Log.SaveResultsAs() function or if there are some specific things to do that are not written in the documentation please ?

 

PS: Why do I not use the /ExportSummary command line argument ?

  • Because when you configure a Jenkins job to publish JUnit report you have to give a relative path to the workspace.
  • Whereas the /ExportSummary argument expects an absolute path, the Jenkins workspace depends on the job name, so we can not use the command line argument because it is to heavy to edit the command line argument value each time we edit the job name (we use the job name as a test run title, so we edit it sometimes).
  • Moreover we have one job per PJS, deployed from a job template, so the commande line argument value has to be set for each job.
  • And in the /ExportSummary command line argument value we can not use environment variables, like the %WORKSPACE% variable which holds the running Jenkins.
6 REPLIES 6
Marsha_R
Champion Level 3

It would be best to ask Support about this.  Here's the link:

https://support.smartbear.com/testcomplete/

hkim5
Staff

for the last two arguments of the log.saveresultas method, have you tried

1) lower case "t" for true

2) using the integer codes (aka 0,1, or 2) instead of lesFull, lesCurrentProject, etc...

 

I'm assuming that the arguments are in the wrong format if the other operations like slpacker and etc are working but not this one when called on individually.

Best,
Justin Kim
Felixg
Occasional Contributor

Hi @hkim5 , Ihave tried what you suggested, I replaced lsJUnit by 5 and lesFull by 0, I tried with True and False (I forgot to precise in my first message that we are in Python) for the third parameter, and any summary report is generated.

@Felixg 

so does it look like this: 

Log.SaveResultsAs(Project.ConfigPath + "\\MHT_Files\\" + "results.xml", lsJUnit, true, 0)

although, given that we are saving visualizer images, and we are saving in xml format, the last two arguments are not needed (as they are by default set to true and 0) so the above code would look more like  

Log.SaveResultsAs(Project.ConfigPath + "\\MHT_Files\\" + "results.xml", lsJUnit)

 image.pngimage.png

Then you should get your Junit xml results file in the directory that you wanted (since its project.configpath, if you are running it via jenkins, you'd find it in ${WORKSPACE}\MHT_Files\results.xml (if we use the code above)

 

 image.png

Best,
Justin Kim
Felixg
Occasional Contributor

Hi @hkim5 ,

 

I have tried

Log.SaveResultsAs(Project.ConfigPath + "\\MHT_Files\\" + "results.xml", lsJUnit)

And it does not work. The folder MHT_Files is well created into the project path, but it is empty.

 

I have well read the documentation, and I want to export the Project Suite logs, so I use the default value "lesFull", and I run the PJS. I have tried using and not using the optional arguments, with True False for the ExportVisualizerImages argument, etc ... It never works.

 

Moreover, this solution can not solve our issur, because, as I said in my first message, we have to get a known path because using environment variables in command line is not working, and the path to the summary to publish in the Jenkins job configuration is relative to workspace path

Felixg
Occasional Contributor

Ok even if the Log.SaveResultsAs() function does not work with lsJUnit LogFormat, due to you last answer I found the way to use the command line argument /ExportSummary through the TestComplete Jenkins pluggin.

Indeed, there were several tricky points. So when you go to the plugin configuration in your job, you click on "settings", and in the command line arguments you put :

"/ExportSummary:${WORKSPACE}\results.xml"

The tricky points are :

  • Even if the Jenkins server, and the slave agent, run on a Windows machine, use the UNIX syntax ${WORKSPACE} and not %WORKSPACE% (even if you use "\" and not "/" as path delimiter ... so UNIX syntax for environment variables, Windows syntax for others)
  • The quotes should include the argument also : "/ExportSummary:${WORKSPACE}\results.xml" and not /ExportSummary:"${WORKSPACE}\results.xml"

Then you can specified in the post build step to publish JUnit report giving the following path : results.xml

 

Thanks all for your answers

cancel
Showing results for 
Search instead for 
Did you mean: