JUnit XML Report
The JUnit XML build summary report is for continuous integration (CIcontinuous integration/CDcontinuous delivery). CI/CD tools read it to decide whether the tests passed, and many of them can display it. The HTML build summary report shows a superset of its information.
The report is <BuildName>/<BuildName>.xml, written next to the HTMLHyperText Markup Language build summary report by
RUFF/osvvm/CreateBuildReports at the end of a build.
RUFF/osvvm/Report2Junit creates it alone from the build’s YAMLYAML Ain't Markup Language file.
OSVVMOpen Source VHDL Verification Methodology runs its own regressions on GitHub and collects these files there.
build ../OsvvmLibraries/RunDemoTests.pro
# creates
# OsvvmRunDemoTests/OsvvmRunDemoTests.xml
# again from the build's YAML file
set Build OsvvmRunDemoTests
Report2Junit $Build/$Build.yml
Structure
<testsuites>The build: its name, start time, duration and the counts of test cases, failures, errors and skipped test cases. Its
<properties>name the OSVVM version, the simulator and the simulator’s version.<testsuite>A test suite (TestSuite), with its counts.
<testcase>A test case: its name, its test suite as
classname, the number of checks asassertions, and its duration. Generics set with generic are<property name="generic">entries.<failure>,<skipped>A failed test case, with the reason; a test case skipped with SkipTest.
<?xml version="1.0" encoding="utf-8"?>
<testsuites
name="OsvvmLibraries_RunAllTests"
timestamp="2026-10-10T16:50:50+00:00"
time="99.883"
tests="314"
failures="0"
errors="0"
skipped="0"
>
<properties>
<property name="OsvvmVersion" value="2026.09" />
<property name="Simulator" value="NVC" />
<property name="SimulatorVersion" value="1.23.0" />
</properties>
<testsuite
name="StreamTransactionPkg"
time="3.923"
tests="15"
failures="0"
errors="0"
skipped="0"
>
<testcase
name="TbStream_SendGet1"
classname="StreamTransactionPkg"
assertions="1296"
time="0.317"
>
</testcase>
...
</testsuite>
</testsuites>