JUnit XML — Properties Block with Awkward Values
A <properties> block holding an empty value, an escaped ampersand in a branch name and a JVM options string with spaces. Use it to check that build metadata survives extraction with its entities unescaped exactly once.
<?xml version="1.0" encoding="UTF-8"?>
<testsuite name="cart.PricingTest" tests="2" failures="0" errors="0" skipped="0" time="0.198">
<properties>
<property name="ci.build" value="4821"/>
<property name="ci.commit" value="9f2c1ab7d4e05b3386c0a1de77b459f2c8d0a641"/>
<property name="ci.branch" value="feature/discount-&-tax"/>
<property name="empty.value" value=""/>
<property name="java.opts" value="-Xmx2g -Dfile.encoding=UTF-8"/>
</properties>
<testcase classname="cart.PricingTest" name="appliesUnitPrice" time="0.121"/>
<testcase classname="cart.PricingTest" name="roundsHalfUpAtTwoDecimals" time="0.077"/>
</testsuite>
Specifications
- Seed
- 61200
- Encoding
- UTF-8
- Line Endings
- LF
- Properties
- 5
- Tests
- 2
- Has Empty Value
- true
- Has Escaped Ampersand
- true
Testing contract
Expected to pass- Scenario
- Extract build properties from a JUnit report without mangling their values.
- Expected result
- ci.branch reads back as feature/discount-&-tax with the entity resolved once, and empty.value is an empty string rather than a missing key.
What is a .xml file?
XML (Extensible Markup Language) is a verbose, self-describing markup language using nested tags, attributes, and namespaces to represent structured, hierarchical data. It supports schemas, entities, and validation and underlies many document and data formats. It remains common in enterprise, publishing, and interchange contexts.
How to use this file
Use an example XML file to test parsers, namespace and schema validation, XPath queries, and protection against entity-expansion and external-entity attacks.
How to use this file for testing
“JUnit XML — Properties Block with Awkward Values” is a deterministic Novus Examples fixture for Metadata testing, Config parsing, Conversion testing. Images, audio, video, and documents with documented metadata paired with deliberately stripped versions, for verifying extraction, preservation, redaction, and privacy-scrubbing behavior.
Documented properties for this file: seed 61200 · UTF-8 · LF. Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.
Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such — expect parsers to fail loudly rather than silently accept them.
Test and coverage reports document their totals (suites, cases, passes, failures, skips, covered lines) in the spec table. Point your CI dashboard, coverage gate, or report converter at the file and assert those counts survive; format twins carry identical numbers so a conversion can be scored exactly.
Code examples
import xml.etree.ElementTree as ET
tree = ET.parse("structure-properties-block.xml")
root = tree.getroot()
print(root.tag, [c.tag for c in root][:5])Related files
- spdxSPDX 2.3 SBOM With File-Level RecordsAn SPDX 2.3 tag-value SBOM that descends to file level: two fictional build outputs with SHA-1 and SHA-256 checksums, per-file licence findings, and CONTAINS relationships back to their package. Every package, version, hash and licence is fictional — the tree describes nothing real.

- xmlJUnit XML — Timestamp, Hostname and Package MetadataEvery optional run-metadata attribute a JUnit suite may carry — timestamp, hostname, package, id — plus a properties block holding build and branch identifiers. Use it to test that a dashboard reads build context from the report instead of from its own environment.

- lockbun.lock (Text Lockfile)Bun's text lockfile, where each package is a positional array of descriptor, dependency map and integrity string rather than an object — a shape that breaks parsers assuming every lock entry is keyed. Every package, version, hash and licence is fictional — the tree describes nothing real.

- lockCargo.lock (version 3, Legacy)The same fictional Rust tree pinned by a version 3 Cargo.lock, for testing that a reader keys on the declared version rather than assuming the newest format. Every package, version, hash and licence is fictional — the tree describes nothing real.

- lockCargo.lock (version 4)A Rust Cargo.lock in the version 4 format — TOML [[package]] tables with a registry source, a sha256-shaped checksum and a name-only dependencies array that resolves against the other tables. Every package, version, hash and licence is fictional — the tree describes nothing real.

- lockcomposer.lock (PHP)A PHP composer.lock in JSON, pinning each fictional package by both a git reference and a dist zip shasum, with a content-hash binding it to composer.json. Every package, version, hash and licence is fictional — the tree describes nothing real.

Generated by generation/testing.py. Free for any use, no attribution required — license.