spekt / junit.testlogger

JUnit test logger for vstest platform (<= v3.x)
MIT License
77 stars 15 forks source link

wrong amount of tests in gitlab #15

Open djonasdev opened 4 years ago

djonasdev commented 4 years ago

After I integrated the library, I noticed the following oddities:

I get only 2 tests displayed instead of 13.

If I use the default --logger "trx;LogFileName=testreport.trx" statement and convert the result withtrx2junit` (https://github.com/gfoidl/trx2junit) I get the correct result shown in gitlab.

junit.testlogger

gitlab pipeline

grafik

grafik

grafik

junit.testlogger result file

<?xml version="1.0" encoding="utf-8"?>
<testsuites name="foo.common.test.dll" tests="13" failures="0" time="0.098">
  <testsuite name="foo.common.test.dll" tests="13" skipped="0" failures="0" errors="0" time="0.098" timestamp="2019-12-03T 08:02:10Z" hostname="executor://xunit/VsTestRunner2/netcoreapp">
    <testcase classname="Haprotec.Foo.Model.Workstation.WorkstationProcessTests" name="Haprotec.Foo.Model.Workstation.WorkstationProcessTests.ValidateTest" file="D:\Repositories\gitlab.haprotec\customers\foo\foo-zls\src\foo.common.test\bin\Debug\netcoreapp2.2\foo.common.test.dll" time="0.011" />
    <testcase classname="Haprotec.Foo.Model.Workstation.WorkstationProcessTests" name="Haprotec.Foo.Model.Workstation.WorkstationProcessTests.ValidateTest" file="D:\Repositories\gitlab.haprotec\customers\foo\foo-zls\src\foo.common.test\bin\Debug\netcoreapp2.2\foo.common.test.dll" time="0.001" />
    <testcase classname="Haprotec.Foo.Model.Workstation.WorkstationProcessTests" name="Haprotec.Foo.Model.Workstation.WorkstationProcessTests.ValidateTest" file="D:\Repositories\gitlab.haprotec\customers\foo\foo-zls\src\foo.common.test\bin\Debug\netcoreapp2.2\foo.common.test.dll" time="0.001" />
    <testcase classname="Haprotec.Foo.Model.Workstation.WorkstationProcessTests" name="Haprotec.Foo.Model.Workstation.WorkstationProcessTests.ValidateTest" file="D:\Repositories\gitlab.haprotec\customers\foo\foo-zls\src\foo.common.test\bin\Debug\netcoreapp2.2\foo.common.test.dll" time="0.001" />
    <testcase classname="Haprotec.Foo.Model.Workstation.WorkstationProcessTests" name="Haprotec.Foo.Model.Workstation.WorkstationProcessTests.ValidateTest" file="D:\Repositories\gitlab.haprotec\customers\foo\foo-zls\src\foo.common.test\bin\Debug\netcoreapp2.2\foo.common.test.dll" time="0.001" />
    <testcase classname="Haprotec.Foo.Model.Workstation.WorkstationProcessTests" name="Haprotec.Foo.Model.Workstation.WorkstationProcessTests.ValidateTest" file="D:\Repositories\gitlab.haprotec\customers\foo\foo-zls\src\foo.common.test\bin\Debug\netcoreapp2.2\foo.common.test.dll" time="0.001" />
    <testcase classname="Haprotec.Foo.Model.Workstation.WorkstationProcessTests" name="Haprotec.Foo.Model.Workstation.WorkstationProcessTests.ValidateTest" file="D:\Repositories\gitlab.haprotec\customers\foo\foo-zls\src\foo.common.test\bin\Debug\netcoreapp2.2\foo.common.test.dll" time="0.001" />
    <testcase classname="Haprotec.Foo.Model.Workstation.WorkstationProcessTests" name="Haprotec.Foo.Model.Workstation.WorkstationProcessTests.ValidateTest" file="D:\Repositories\gitlab.haprotec\customers\foo\foo-zls\src\foo.common.test\bin\Debug\netcoreapp2.2\foo.common.test.dll" time="0.001" />
    <testcase classname="Haprotec.Foo.Model.Workstation.WorkstationProcessTests" name="Haprotec.Foo.Model.Workstation.WorkstationProcessTests.ValidateTest" file="D:\Repositories\gitlab.haprotec\customers\foo\foo-zls\src\foo.common.test\bin\Debug\netcoreapp2.2\foo.common.test.dll" time="0.001" />
    <testcase classname="Haprotec.Foo.Model.Workstation.WorkstationProcessTests" name="Haprotec.Foo.Model.Workstation.WorkstationProcessTests.ValidateTest" file="D:\Repositories\gitlab.haprotec\customers\foo\foo-zls\src\foo.common.test\bin\Debug\netcoreapp2.2\foo.common.test.dll" time="0.001" />
    <testcase classname="Haprotec.Foo.Model.Workstation.WorkstationProcessTests" name="Haprotec.Foo.Model.Workstation.WorkstationProcessTests.ValidateTest" file="D:\Repositories\gitlab.haprotec\customers\foo\foo-zls\src\foo.common.test\bin\Debug\netcoreapp2.2\foo.common.test.dll" time="0.001" />
    <testcase classname="Haprotec.Foo.Model.Workstation.WorkstationProcessTests" name="Haprotec.Foo.Model.Workstation.WorkstationProcessTests.ValidateTest" file="D:\Repositories\gitlab.haprotec\customers\foo\foo-zls\src\foo.common.test\bin\Debug\netcoreapp2.2\foo.common.test.dll" time="0.001" />
    <testcase classname="Haprotec.Foo.Model.Workstation.WorkstationProcessTests" name="Haprotec.Foo.Model.Workstation.WorkstationProcessTests.ConvertToAndFromJsonTest" file="D:\Repositories\gitlab.haprotec\customers\foo\foo-zls\src\foo.common.test\bin\Debug\netcoreapp2.2\foo.common.test.dll" time="0.076" />
  </testsuite>
</testsuites>

trx logger in combination with trx2junit (https://github.com/gfoidl/trx2junit)

gitlab pipeline

grafik

grafik

trx output file

<?xml version="1.0" encoding="utf-8"?>
<TestRun id="1df4ac78-d1d2-4772-a94d-a78f9467af02" name="fu-cisrv@VM-SRV-BUILD01 2019-12-03 09:31:10" runUser="HAPROTEC\fu-cisrv" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010">
  <Times creation="2019-12-03T09:31:10.0478303+01:00" queuing="2019-12-03T09:31:10.0478306+01:00" start="2019-12-03T09:31:07.7056010+01:00" finish="2019-12-03T09:31:10.1095046+01:00" />
  <TestSettings name="default" id="2faaea12-30ce-407d-930f-0868268b16de">
    <Deployment runDeploymentRoot="fu-cisrv_VM-SRV-BUILD01_2019-12-03_09_31_10" />
  </TestSettings>
  <Results>
    <UnitTestResult executionId="f760fce6-8fd2-4e1e-90eb-48dc84ce7ea3" testId="e0fd19bc-4a34-f8f6-22c4-4053401d6283" testName="Haprotec.Customer.Foo.Model.Workstation.WorkstationProcessTests.ValidateTest(testData: ValidationTestData { ExpectedResult = RequiredProgramMissing, Process = WorkstationProcess { NumberOfStations = 2, Process = [...] }, TestName = &quot;required program is empty string&quot; })" computerName="VM-SRV-BUILD01" duration="00:00:00.0010000" startTime="2019-12-03T09:31:09.9875331+01:00" endTime="2019-12-03T09:31:09.9875333+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="f760fce6-8fd2-4e1e-90eb-48dc84ce7ea3" />
    <UnitTestResult executionId="4f76818f-f0fe-44ee-ad45-ae4e37a914c8" testId="e0fd19bc-4a34-f8f6-22c4-4053401d6283" testName="Haprotec.Customer.Foo.Model.Workstation.WorkstationProcessTests.ValidateTest(testData: ValidationTestData { ExpectedResult = InsertOccursMoreThanOnce, Process = WorkstationProcess { NumberOfStations = 2, Process = [...] }, TestName = &quot;2 insert steps&quot; })" computerName="VM-SRV-BUILD01" duration="00:00:00.0010000" startTime="2019-12-03T09:31:09.9232688+01:00" endTime="2019-12-03T09:31:09.9232691+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="4f76818f-f0fe-44ee-ad45-ae4e37a914c8" />
    <UnitTestResult executionId="2c92b5f0-c338-4902-afa3-0712cd8ab05d" testId="e0fd19bc-4a34-f8f6-22c4-4053401d6283" testName="Haprotec.Customer.Foo.Model.Workstation.WorkstationProcessTests.ValidateTest(testData: ValidationTestData { ExpectedResult = Valid, Process = WorkstationProcess { NumberOfStations = 2, Process = [...] }, TestName = &quot;valid 1&quot; })" computerName="VM-SRV-BUILD01" duration="00:00:00.0170000" startTime="2019-12-03T09:31:09.9152102+01:00" endTime="2019-12-03T09:31:09.9152201+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="2c92b5f0-c338-4902-afa3-0712cd8ab05d" />
    <UnitTestResult executionId="2cedac3b-2c09-4ce5-8357-7fa97e7ed9e7" testId="e0fd19bc-4a34-f8f6-22c4-4053401d6283" testName="Haprotec.Customer.Foo.Model.Workstation.WorkstationProcessTests.ValidateTest(testData: ValidationTestData { ExpectedResult = DownholderOccursMoreThanOnce, Process = WorkstationProcess { NumberOfStations = 2, Process = [...] }, TestName = &quot;2 ApplyDownholder steps&quot; })" computerName="VM-SRV-BUILD01" duration="00:00:00.0010000" startTime="2019-12-03T09:31:09.9233742+01:00" endTime="2019-12-03T09:31:09.9233745+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="2cedac3b-2c09-4ce5-8357-7fa97e7ed9e7" />
    <UnitTestResult executionId="e4640910-8bdd-4bdd-af80-b913af980cf6" testId="e0fd19bc-4a34-f8f6-22c4-4053401d6283" testName="Haprotec.Customer.Foo.Model.Workstation.WorkstationProcessTests.ValidateTest(testData: ValidationTestData { ExpectedResult = RequiredProgramMissing, Process = WorkstationProcess { NumberOfStations = 2, Process = [...] }, TestName = &quot;required program missing 1&quot; })" computerName="VM-SRV-BUILD01" duration="00:00:00.0230000" startTime="2019-12-03T09:31:09.9234467+01:00" endTime="2019-12-03T09:31:09.9234470+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="e4640910-8bdd-4bdd-af80-b913af980cf6" />
    <UnitTestResult executionId="9f45dfe1-0987-4eb9-91f2-a915b245dcab" testId="e0fd19bc-4a34-f8f6-22c4-4053401d6283" testName="Haprotec.Customer.Foo.Model.Workstation.WorkstationProcessTests.ValidateTest(testData: ValidationTestData { ExpectedResult = RequiredProgramMissing, Process = WorkstationProcess { NumberOfStations = 2, Process = [...] }, TestName = &quot;required program missing 2&quot; })" computerName="VM-SRV-BUILD01" duration="00:00:00.0010000" startTime="2019-12-03T09:31:09.9874781+01:00" endTime="2019-12-03T09:31:09.9874791+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="9f45dfe1-0987-4eb9-91f2-a915b245dcab" />
    <UnitTestResult executionId="51a48048-15c5-45fb-96ce-b5fbf893219a" testId="5ff569a7-252c-f194-6e94-793560722f95" testName="Haprotec.Customer.Foo.Model.Workstation.WorkstationProcessTests.ConvertToAndFromJsonTest" computerName="VM-SRV-BUILD01" duration="00:00:00.0900000" startTime="2019-12-03T09:31:10.0030089+01:00" endTime="2019-12-03T09:31:10.0030102+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="51a48048-15c5-45fb-96ce-b5fbf893219a" />
    <UnitTestResult executionId="115f246c-ba4b-4617-8b4b-a4106d5a5eb7" testId="e0fd19bc-4a34-f8f6-22c4-4053401d6283" testName="Haprotec.Customer.Foo.Model.Workstation.WorkstationProcessTests.ValidateTest(testData: ValidationTestData { ExpectedResult = DownholderMissing, Process = WorkstationProcess { NumberOfStations = 2, Process = [...] }, TestName = &quot;ApplyDownholder missing&quot; })" computerName="VM-SRV-BUILD01" duration="00:00:00.0010000" startTime="2019-12-03T09:31:09.9233393+01:00" endTime="2019-12-03T09:31:09.9233395+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="115f246c-ba4b-4617-8b4b-a4106d5a5eb7" />
    <UnitTestResult executionId="6f8d731a-8c04-43cb-b9fa-0586fb3409a2" testId="e0fd19bc-4a34-f8f6-22c4-4053401d6283" testName="Haprotec.Customer.Foo.Model.Workstation.WorkstationProcessTests.ValidateTest(testData: ValidationTestData { ExpectedResult = InsertMustBeFirst, Process = WorkstationProcess { NumberOfStations = 2, Process = [...] }, TestName = &quot;insert not first&quot; })" computerName="VM-SRV-BUILD01" duration="00:00:00.0010000" startTime="2019-12-03T09:31:09.9233047+01:00" endTime="2019-12-03T09:31:09.9233050+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="6f8d731a-8c04-43cb-b9fa-0586fb3409a2" />
    <UnitTestResult executionId="82d92887-fc56-46f9-bc78-dece1a070903" testId="e0fd19bc-4a34-f8f6-22c4-4053401d6283" testName="Haprotec.Customer.Foo.Model.Workstation.WorkstationProcessTests.ValidateTest(testData: ValidationTestData { ExpectedResult = DownholderMustBeLast, Process = WorkstationProcess { NumberOfStations = 2, Process = [...] }, TestName = &quot;ApplyDownholder not last&quot; })" computerName="VM-SRV-BUILD01" duration="00:00:00.0010000" startTime="2019-12-03T09:31:09.9234087+01:00" endTime="2019-12-03T09:31:09.9234089+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="82d92887-fc56-46f9-bc78-dece1a070903" />
    <UnitTestResult executionId="67705551-1e29-4b32-85eb-15daf020d0cb" testId="e0fd19bc-4a34-f8f6-22c4-4053401d6283" testName="Haprotec.Customer.Foo.Model.Workstation.WorkstationProcessTests.ValidateTest(testData: ValidationTestData { ExpectedResult = InsertMissing, Process = WorkstationProcess { NumberOfStations = 2, Process = [...] }, TestName = &quot;missing insert&quot; })" computerName="VM-SRV-BUILD01" duration="00:00:00.0010000" startTime="2019-12-03T09:31:09.9232303+01:00" endTime="2019-12-03T09:31:09.9232306+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="67705551-1e29-4b32-85eb-15daf020d0cb" />
    <UnitTestResult executionId="97768a77-c095-4f6f-9cb8-9115e9129ff2" testId="e0fd19bc-4a34-f8f6-22c4-4053401d6283" testName="Haprotec.Customer.Foo.Model.Workstation.WorkstationProcessTests.ValidateTest(testData: ValidationTestData { ExpectedResult = InsertMissing, Process = WorkstationProcess { NumberOfStations = 1, Process = [...] }, TestName = &quot;empty object&quot; })" computerName="VM-SRV-BUILD01" duration="00:00:00.0010000" startTime="2019-12-03T09:31:09.9231691+01:00" endTime="2019-12-03T09:31:09.9231698+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="97768a77-c095-4f6f-9cb8-9115e9129ff2" />
    <UnitTestResult executionId="3358e12f-9256-4700-b575-eaaedced0965" testId="e0fd19bc-4a34-f8f6-22c4-4053401d6283" testName="Haprotec.Customer.Foo.Model.Workstation.WorkstationProcessTests.ValidateTest(testData: ValidationTestData { ExpectedResult = Valid, Process = WorkstationProcess { NumberOfStations = 2, Process = [...] }, TestName = &quot;valid 2&quot; })" computerName="VM-SRV-BUILD01" duration="00:00:00.0010000" startTime="2019-12-03T09:31:09.9227473+01:00" endTime="2019-12-03T09:31:09.9227479+01:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="3358e12f-9256-4700-b575-eaaedced0965" />
  </Results>
  <TestDefinitions>
    <UnitTest name="Haprotec.Customer.Foo.Model.Workstation.WorkstationProcessTests.ConvertToAndFromJsonTest" storage="d:\gitlabrunnerservice\builds\fc40b836\0\customers\Foo\Foo-zls\src\Foo.common.test\bin\release\netcoreapp2.2\Foo.common.test.dll" id="5ff569a7-252c-f194-6e94-793560722f95">
      <Execution id="51a48048-15c5-45fb-96ce-b5fbf893219a" />
      <TestMethod codeBase="D:\GitlabRunnerService\builds\fc40b836\0\customers\Foo\Foo-zls\src\Foo.common.test\bin\Release\netcoreapp2.2\Foo.common.test.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="Haprotec.Customer.Foo.Model.Workstation.WorkstationProcessTests" name="Haprotec.Customer.Foo.Model.Workstation.WorkstationProcessTests.ConvertToAndFromJsonTest" />
    </UnitTest>
    <UnitTest name="Haprotec.Customer.Foo.Model.Workstation.WorkstationProcessTests.ValidateTest" storage="d:\gitlabrunnerservice\builds\fc40b836\0\customers\Foo\Foo-zls\src\Foo.common.test\bin\release\netcoreapp2.2\Foo.common.test.dll" id="e0fd19bc-4a34-f8f6-22c4-4053401d6283">
      <Execution id="2c92b5f0-c338-4902-afa3-0712cd8ab05d" />
      <TestMethod codeBase="D:\GitlabRunnerService\builds\fc40b836\0\customers\Foo\Foo-zls\src\Foo.common.test\bin\Release\netcoreapp2.2\Foo.common.test.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="Haprotec.Customer.Foo.Model.Workstation.WorkstationProcessTests" name="Haprotec.Customer.Foo.Model.Workstation.WorkstationProcessTests.ValidateTest" />
    </UnitTest>
  </TestDefinitions>
  <TestEntries>
    <TestEntry testId="e0fd19bc-4a34-f8f6-22c4-4053401d6283" executionId="f760fce6-8fd2-4e1e-90eb-48dc84ce7ea3" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
    <TestEntry testId="e0fd19bc-4a34-f8f6-22c4-4053401d6283" executionId="4f76818f-f0fe-44ee-ad45-ae4e37a914c8" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
    <TestEntry testId="e0fd19bc-4a34-f8f6-22c4-4053401d6283" executionId="2c92b5f0-c338-4902-afa3-0712cd8ab05d" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
    <TestEntry testId="e0fd19bc-4a34-f8f6-22c4-4053401d6283" executionId="2cedac3b-2c09-4ce5-8357-7fa97e7ed9e7" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
    <TestEntry testId="e0fd19bc-4a34-f8f6-22c4-4053401d6283" executionId="e4640910-8bdd-4bdd-af80-b913af980cf6" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
    <TestEntry testId="e0fd19bc-4a34-f8f6-22c4-4053401d6283" executionId="9f45dfe1-0987-4eb9-91f2-a915b245dcab" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
    <TestEntry testId="5ff569a7-252c-f194-6e94-793560722f95" executionId="51a48048-15c5-45fb-96ce-b5fbf893219a" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
    <TestEntry testId="e0fd19bc-4a34-f8f6-22c4-4053401d6283" executionId="115f246c-ba4b-4617-8b4b-a4106d5a5eb7" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
    <TestEntry testId="e0fd19bc-4a34-f8f6-22c4-4053401d6283" executionId="6f8d731a-8c04-43cb-b9fa-0586fb3409a2" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
    <TestEntry testId="e0fd19bc-4a34-f8f6-22c4-4053401d6283" executionId="82d92887-fc56-46f9-bc78-dece1a070903" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
    <TestEntry testId="e0fd19bc-4a34-f8f6-22c4-4053401d6283" executionId="67705551-1e29-4b32-85eb-15daf020d0cb" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
    <TestEntry testId="e0fd19bc-4a34-f8f6-22c4-4053401d6283" executionId="97768a77-c095-4f6f-9cb8-9115e9129ff2" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
    <TestEntry testId="e0fd19bc-4a34-f8f6-22c4-4053401d6283" executionId="3358e12f-9256-4700-b575-eaaedced0965" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
  </TestEntries>
  <TestLists>
    <TestList name="Ergebnisse nicht in einer Liste" id="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
    <TestList name="Alle geladenen Ergebnisse" id="19431567-8539-422a-85d7-44ee4e166bda" />
  </TestLists>
  <ResultSummary outcome="Completed">
    <Counters total="13" executed="13" passed="13" 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>[xUnit.net 00:00:00.00] xUnit.net VSTest Adapter v2.4.1 (64-bit .NET Core 4.6.28008.02)&#xD;
[xUnit.net 00:00:00.85]   Discovering: Foo.common.test&#xD;
[xUnit.net 00:00:00.94]   Discovered:  Foo.common.test&#xD;
[xUnit.net 00:00:00.94]   Starting:    Foo.common.test&#xD;
[xUnit.net 00:00:01.29]   Finished:    Foo.common.test&#xD;
</StdOut>
    </Output>
  </ResultSummary>
</TestRun>

converted xml file from trx2junit

<?xml version="1.0" encoding="utf-8"?>
<testsuites>
  <testsuite name="Haprotec.Customer.Foo.Model.Workstation.WorkstationProcessTests" hostname="VM-SRV-BUILD01" package=".NET Core" id="0" tests="13" failures="0" errors="0" skipped="0" time="0.140" timestamp="2019-12-03T09:31:10">
    <properties />
    <testcase name="Haprotec.Customer.Foo.Model.Workstation.WorkstationProcessTests.ConvertToAndFromJsonTest" classname="Haprotec.Customer.Foo.Model.Workstation.WorkstationProcessTests" time="0.090" />
    <testcase name="Haprotec.Customer.Foo.Model.Workstation.WorkstationProcessTests.ValidateTest(testData: ValidationTestData { ExpectedResult = RequiredProgramMissing, Process = WorkstationProcess { NumberOfStations = 2, Process = [...] }, TestName = &quot;required program is empty string&quot; })" classname="Haprotec.Customer.Foo.Model.Workstation.WorkstationProcessTests" time="0.001" />
    <testcase name="Haprotec.Customer.Foo.Model.Workstation.WorkstationProcessTests.ValidateTest(testData: ValidationTestData { ExpectedResult = InsertOccursMoreThanOnce, Process = WorkstationProcess { NumberOfStations = 2, Process = [...] }, TestName = &quot;2 insert steps&quot; })" classname="Haprotec.Customer.Foo.Model.Workstation.WorkstationProcessTests" time="0.001" />
    <testcase name="Haprotec.Customer.Foo.Model.Workstation.WorkstationProcessTests.ValidateTest(testData: ValidationTestData { ExpectedResult = Valid, Process = WorkstationProcess { NumberOfStations = 2, Process = [...] }, TestName = &quot;valid 1&quot; })" classname="Haprotec.Customer.Foo.Model.Workstation.WorkstationProcessTests" time="0.017" />
    <testcase name="Haprotec.Customer.Foo.Model.Workstation.WorkstationProcessTests.ValidateTest(testData: ValidationTestData { ExpectedResult = DownholderOccursMoreThanOnce, Process = WorkstationProcess { NumberOfStations = 2, Process = [...] }, TestName = &quot;2 ApplyDownholder steps&quot; })" classname="Haprotec.Customer.Foo.Model.Workstation.WorkstationProcessTests" time="0.001" />
    <testcase name="Haprotec.Customer.Foo.Model.Workstation.WorkstationProcessTests.ValidateTest(testData: ValidationTestData { ExpectedResult = RequiredProgramMissing, Process = WorkstationProcess { NumberOfStations = 2, Process = [...] }, TestName = &quot;required program missing 1&quot; })" classname="Haprotec.Customer.Foo.Model.Workstation.WorkstationProcessTests" time="0.023" />
    <testcase name="Haprotec.Customer.Foo.Model.Workstation.WorkstationProcessTests.ValidateTest(testData: ValidationTestData { ExpectedResult = RequiredProgramMissing, Process = WorkstationProcess { NumberOfStations = 2, Process = [...] }, TestName = &quot;required program missing 2&quot; })" classname="Haprotec.Customer.Foo.Model.Workstation.WorkstationProcessTests" time="0.001" />
    <testcase name="Haprotec.Customer.Foo.Model.Workstation.WorkstationProcessTests.ValidateTest(testData: ValidationTestData { ExpectedResult = DownholderMissing, Process = WorkstationProcess { NumberOfStations = 2, Process = [...] }, TestName = &quot;ApplyDownholder missing&quot; })" classname="Haprotec.Customer.Foo.Model.Workstation.WorkstationProcessTests" time="0.001" />
    <testcase name="Haprotec.Customer.Foo.Model.Workstation.WorkstationProcessTests.ValidateTest(testData: ValidationTestData { ExpectedResult = InsertMustBeFirst, Process = WorkstationProcess { NumberOfStations = 2, Process = [...] }, TestName = &quot;insert not first&quot; })" classname="Haprotec.Customer.Foo.Model.Workstation.WorkstationProcessTests" time="0.001" />
    <testcase name="Haprotec.Customer.Foo.Model.Workstation.WorkstationProcessTests.ValidateTest(testData: ValidationTestData { ExpectedResult = DownholderMustBeLast, Process = WorkstationProcess { NumberOfStations = 2, Process = [...] }, TestName = &quot;ApplyDownholder not last&quot; })" classname="Haprotec.Customer.Foo.Model.Workstation.WorkstationProcessTests" time="0.001" />
    <testcase name="Haprotec.Customer.Foo.Model.Workstation.WorkstationProcessTests.ValidateTest(testData: ValidationTestData { ExpectedResult = InsertMissing, Process = WorkstationProcess { NumberOfStations = 2, Process = [...] }, TestName = &quot;missing insert&quot; })" classname="Haprotec.Customer.Foo.Model.Workstation.WorkstationProcessTests" time="0.001" />
    <testcase name="Haprotec.Customer.Foo.Model.Workstation.WorkstationProcessTests.ValidateTest(testData: ValidationTestData { ExpectedResult = InsertMissing, Process = WorkstationProcess { NumberOfStations = 1, Process = [...] }, TestName = &quot;empty object&quot; })" classname="Haprotec.Customer.Foo.Model.Workstation.WorkstationProcessTests" time="0.001" />
    <testcase name="Haprotec.Customer.Foo.Model.Workstation.WorkstationProcessTests.ValidateTest(testData: ValidationTestData { ExpectedResult = Valid, Process = WorkstationProcess { NumberOfStations = 2, Process = [...] }, TestName = &quot;valid 2&quot; })" classname="Haprotec.Customer.Foo.Model.Workstation.WorkstationProcessTests" time="0.001" />
    <system-out />
    <system-err />
  </testsuite>
</testsuites>
Siphonophora commented 4 years ago

@dojo90 Take a look at this issue which I opened with GitLab. Their junit xml parser seems to de-duplicate test results that are similar / identical. Not sure why they would do that, but I think that is what is happening here.

https://gitlab.com/gitlab-org/gitlab/issues/31975

That said, where is the test data portion of the class name in the TRX file coming from? Is it from an xunit data fixture?

Haprotec.Customer.Foo.Model.Workstation.WorkstationProcessTests.ValidateTest(testData: ValidationTestData { ExpectedResult = RequiredProgramMissing, Process = WorkstationProcess { NumberOfStations = 2, Process = [...] }, TestName = &quot;required program is empty string&quot; })