JUnit XML — Non-ASCII Test Names (UTF-8)
Test names in German, French, Japanese, Greek and Russian, stored as UTF-8 with no BOM and an explicit encoding declaration. A reporter that assumes the platform default encoding produces mojibake here rather than an error.
<?xml version="1.0" encoding="UTF-8"?>
<testsuites>
<testsuite name="i18n.CurrencyTest" tests="5" failures="1" errors="0" skipped="0" time="0.400" timestamp="2026-08-07T09:14:22" hostname="ci-runner-04">
<testcase classname="i18n.CurrencyTest" name="rundet Beträge auf zwei Nachkommastellen" time="0.040"/>
<testcase classname="i18n.CurrencyTest" name="affiche le prix en français" time="0.060"/>
<testcase classname="i18n.CurrencyTest" name="税込価格を計算する" time="0.080"/>
<testcase classname="i18n.CurrencyTest" name="υπολογίζει τον ΦΠΑ" time="0.100">
<failure message="expected:<12.60> but was:<12.59>" type="java.lang.AssertionError"><![CDATA[java.lang.AssertionError: expected:<12.60> but was:<12.59>
at cart.PricingTest.appliesTaxToSubtotal(PricingTest.java:88)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
]]></failure>
</testcase>
<testcase classname="i18n.CurrencyTest" name="форматирует цену в рублях" time="0.120"/>
</testsuite>
</testsuites>
Specifications
- Seed
- 61200
- Encoding
- UTF-8
- Line Endings
- LF
- Tests
- 5
- Failures
- 1
- Scripts
- Latin-1 Supplement, Greek, Cyrillic, Japanese
- Declared Encoding
- UTF-8
- Bom
- false
Testing contract
Expected to pass- Scenario
- Decode a JUnit report whose test names span several scripts.
- Expected result
- All five names read back byte-identical to the file, including 税込価格を計算する, with no replacement characters.
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 — Non-ASCII Test Names (UTF-8)” is a deterministic Novus Examples fixture for Encoding detection, Internationalization, Conversion testing. UTF-8, UTF-8-BOM, UTF-16, and Latin-1 files with documented encodings and line endings for testing charset detection.
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-utf8-names.xml")
root = tree.getroot()
print(root.tag, [c.tag for c in root][:5])Related files
- featureGherkin — French Keywords (# language: fr)A feature written entirely in French keywords, declared by the # language: fr header that must be the first line of the file. Parsers that hardcode English keywords read this as a feature with no scenarios rather than reporting an error, so it fails silently.

- stringsApple .strings — UTF-16 LE with BOM (Japanese)The encoding fixture the .strings format needs: a Japanese catalog written as UTF-16 Little Endian with a byte-order mark, which is what Xcode has historically produced and what a UTF-8-only reader turns into mojibake or a decode error. Also carries full-width punctuation and an ideographic space for width and line-breaking tests.

- txtBidi — bracket mirroring in RTL paragraphs (Hebrew and Arabic)Mirroring is a rendering property of the bidi algorithm, not a transformation of the text: a U+0028 LEFT PARENTHESIS inside an RTL run is DRAWN as ')' while the stored byte never changes. These Hebrew and Arabic lines make that testable, and list the neutral characters that look like they should mirror but do not.

- txtBidi — where a mark is actually required (Arabic)Six Arabic sentences containing a Latin filename, a phone number, a version range, a mixed-script path, a percentage and a bracketed insertion — each shown first as a translator usually delivers it and then with the one invisible character that makes it render correctly. The two forms differ by exactly one code point.

- csvBilingual CSV — English→Arabic RTLBilingual EN→AR RTL CSV SAMPLE for spreadsheet CAT and RTL review tools.

- csvBilingual CSV — English→SpanishBilingual EN→ES CSV SAMPLE for spreadsheet-based localization workflows.

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