How to save MS Test's result in a Jenkins variable?

615 Views Asked by At

One of my Jenkins job is executing MSTest. I am passing the following command to Execute Windows batch command:

del TestResults.trx

"C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\MSTest.exe" /testcontainer:D:\Projects\Jenkins\TestResultVerificationFromJenkins\TestResultVerificationFromJenkins\bin\Debug\TestResultVerificationFromJenkins.dll /resultsfile:TestResults.trx /nologo /detail:stdout

At the time of execution, Console Output is displaying the following values:

Starting execution... Results Top Level Tests ------- --------------- Passed TestResultVerificationFromJenkins.UnitTest1.PassTest [stdout] = Test is passed* 1/1 test(s) Passed

Summary

Test Run Completed. Passed 1


Total 1 Results file: C:\Program Files (x86)\Jenkins\jobs\JenkinsTestResultReader\workspace\TestResults.trx Test Settings: Default Test Settings

In the post build step, I have to pass the MS test result "Test is passed" to a HTTP Request.

Is there any way to save this result in a Jenkins variable so that I can pass that to HTTP Request?

Regards, Umesh

1

There are 1 best solutions below

1
Daniel Omoto On

Since you are in the postbuild step, would parsing the console output for the test result and sending it off to the HTTP Request be an option for you?

For example, using Groovy Postbuild plugin, you could write a small script that could do this.

Perhaps something like:

if(manager.build.logFile.text.indexOf("Test Run Completed. Passed") >= 0)
   manager.listener.logger.println (new URL("http://localhost?parameter=Test+is+passed")).getText()