I'm trying to publish test result with jenkins-pipeline,
Using this pipeline script I manage to get the build done and produce the "xml" outputs:
node {
stage 'Checkout'
checkout scm
stage 'Build'
bat "\"C:/Program Files/dotnet/dotnet.exe\" restore \"${workspace}/MyProg.sln\""
bat "\"C:/Program Files/dotnet/dotnet.exe\" build \"${workspace}/MyProg.sln\""
stage 'UnitTests'
bat returnStatus: true, script: "\"C:/Program Files/dotnet/dotnet.exe\" test \"${workspace}/MyProg.sln\" --logger \"trx;LogFileName=unit_tests.xml\" --no-build"
nunit testResultsPattern: 'Tests\\*Test*\\TestResults\\unit_tests.xml'
}
But in the "UnitTest" stage I get this error:
" Publish NUnit test result report Could not read the XSL XML file. Please report this issue to the plugin author "
When I'm using the "normal" steps build (without the pipline framework) the testing get published. Using:
Attaching one of the XML :
<?xml version="1.0" encoding="UTF-8"?>
<TestRun id="201fdc5c-9a47-461b-a56c-1aec8778053d" name="golano1@VM-CCT-BUILD3 2018-03-28 17:36:50" runUser="CORP\golano1" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010">
<Times creation="2018-03-28T17:36:50.5380380+03:00" queuing="2018-03-28T17:36:50.5380497+03:00" start="2018-03-28T17:36:38.1418862+03:00" finish="2018-03-28T17:36:55.6498820+03:00" />
<TestSettings name="default" id="3e9b0993-3888-4428-bd08-e217e3b54831">
<Deployment runDeploymentRoot="golano1_VM-CCT-BUILD3 2018-03-28 17_36_50" />
</TestSettings>
<Results>
<UnitTestResult executionId="77a19978-2bbb-4bcb-afaa-d5be4384e0d1" testId="a08b2ec5-a68d-434b-a35f-6c65159eee8f" testName="TestSentinalOneBigFile_Failed" computerName="VM-CCT-BUILD3" duration="00:00:05.0340000" startTime="2018-03-28T17:36:45.0000000+03:00" endTime="2018-03-28T17:36:50.0000000+03:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="77a19978-2bbb-4bcb-afaa-d5be4384e0d1" />
<UnitTestResult executionId="49fb4bd0-d650-4ed4-b0f2-40241b138f40" testId="15590544-6d25-4b07-9736-91fc3089eb1d" testName="TestSentinalOneFullScanOfSingleFile_Success" computerName="VM-CCT-BUILD3" duration="00:00:05.0130000" startTime="2018-03-28T17:36:50.0000000+03:00" endTime="2018-03-28T17:36:55.0000000+03:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="49fb4bd0-d650-4ed4-b0f2-40241b138f40" />
</Results>
<TestDefinitions>
<UnitTest name="TestSentinalOneBigFile_Failed" storage="c:\jenkins\workspace\testfolder\pg_branchbuild\tests\sentinalonetests\bin\debug\netcoreapp2.0\sentinalonetests.dll" id="a08b2ec5-a68d-434b-a35f-6c65159eee8f">
<Execution id="77a19978-2bbb-4bcb-afaa-d5be4384e0d1" />
<TestMethod codeBase="C:\Jenkins\workspace\TestFolder\PG_BranchBuild\Tests\SentinaloneTests\bin\Debug\netcoreapp2.0\SentinaloneTests.dll" executorUriOfAdapter="executor://nunit3testexecutor/" className="SentinaloneTests.SentinaloneEngineConnectorTest" name="TestSentinalOneBigFile_Failed" />
</UnitTest>
<UnitTest name="TestSentinalOneFullScanOfSingleFile_Success" storage="c:\jenkins\workspace\testfolder\pg_branchbuild\tests\sentinalonetests\bin\debug\netcoreapp2.0\sentinalonetests.dll" id="15590544-6d25-4b07-9736-91fc3089eb1d">
<Execution id="49fb4bd0-d650-4ed4-b0f2-40241b138f40" />
<TestMethod codeBase="C:\Jenkins\workspace\TestFolder\PG_BranchBuild\Tests\SentinaloneTests\bin\Debug\netcoreapp2.0\SentinaloneTests.dll" executorUriOfAdapter="executor://nunit3testexecutor/" className="SentinaloneTests.SentinaloneEngineConnectorTest" name="TestSentinalOneFullScanOfSingleFile_Success" />
</UnitTest>
</TestDefinitions>
<TestEntries>
<TestEntry testId="a08b2ec5-a68d-434b-a35f-6c65159eee8f" executionId="77a19978-2bbb-4bcb-afaa-d5be4384e0d1" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="15590544-6d25-4b07-9736-91fc3089eb1d" executionId="49fb4bd0-d650-4ed4-b0f2-40241b138f40" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
</TestEntries>
<TestLists>
<TestList name="Results Not in a List" id="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestList name="All Loaded Results" id="19431567-8539-422a-85d7-44ee4e166bda" />
</TestLists>
<ResultSummary outcome="Completed">
<Counters total="2" executed="2" passed="2" failed="0" error="0" timeout="0" aborted="0" inconclusive="0" passedButRunAborted="0" notRunnable="0" notExecuted="0" disconnected="0" warning="0" completed="0" inProgress="0" pending="0" />
<Output>
<StdOut>NUnit Adapter 3.8.0.0: Test execution startedRunning all tests in C:\Jenkins\workspace\TestFolder\PG_BranchBuild\Tests\SentinaloneTests\bin\Debug\netcoreapp2.0\SentinaloneTests.dllNUnit3TestExecutor converted 2 of 2 NUnit test casesNUnit Adapter 3.8.0.0: Test execution complete</StdOut>
</Output>
</ResultSummary>
</TestRun>
What am I doing wrong?
Also tried with:
step([$class: 'NUnitPublisher', testResultsPattern: 'Tests\\FilesScannerTests\\TestResults\\unit_tests.xml', debug: false, keepJUnitReports: true, skipJUnitArchiver:false, failIfNoResults: true])
But it didn't worked out as well..
I managed to do so using the "MSTestPublisher" class,
So the final pipeline is:
node {
stage 'Checkout'
checkout scm
stage 'Build'
bat "\"C:/Program Files/dotnet/dotnet.exe\" restore \"${workspace}/MyProg.sln\""
bat "\"C:/Program Files/dotnet/dotnet.exe\" build \"${workspace}/MyProg.sln\""
stage 'UnitTests'
bat returnStatus: true, script: "\"C:/Program Files/dotnet/dotnet.exe\" test \"${workspace}/MyProg.sln\" --logger \"trx;LogFileName=unit_tests.xml\" --no-build"
step([$class: 'MSTestPublisher', testResultsFile:"**/unit_tests.xml", failOnError: true, keepLongStdio: true])
}
I have uploaded some examples that I made to my GitHub for everyone to use and contribute, feel free to take a look:
https://github.com/avrum/JenkinsFileFor.NETCore
Those pipline jenkinsfile will add this pipline template to your build:
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With