You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
HTML format marks whitespace-significant literals with IDE-style per-character markers:
values with leading/trailing whitespace (on any line), tabs, runs of spaces, or pipes
(e.g. indent expectations, whitespace-only cells, formatted-row values) render in
monospace with a CSS-drawn dot per significant space and an arrow per tab, so space
counts and tab-vs-space composition are readable at a glance. Single spaces between
words stay unmarked, and the value text itself stays unaltered for copy/paste and
search.
Built-in html output format: self-contained, single-file-per-page living documentation
(inline CSS/JS, no external references) with autowidth tables, sticky header/first column,
nested-collection rendering, pass/fail badges and status colouring, collapsible failure
details, per-page row filter and "failing only" toggle, roles legend, light/dark toggle,
and a print stylesheet. Relative links throughout make the output tree GitHub Pages-ready.
HTML index pages roll pass/fail status up the tree: each nav item shows a status dot and
every index summarises its scenario pass rate ("N of M scenarios broken"/"All passing").
Every HTML page shows a breadcrumb trail of its ancestor pages (root package → class →
table), with relative links so the trail works from any subpath.
Every HTML page has a menu button opening a navigation drawer with the whole-report tree
(status dots included), the current page highlighted and all links relative to that page.
The drawer slides in over the content, so tables always get the full page width.
Whole-report search: a search box in the navigation drawer searches across every page's
title, description, headers and cell values, listing matching pages (with status dots) to
jump to. Backed by a single shared tabletest-search-index.js written once to the output
root and linked from every page by a relative prefix, so search works offline (file://)
and from any subpath without external requests.
Single-file HTML mode (--single-file / -s on the CLI): assembles the whole report into
one self-contained .html — every table inlined as an anchored section, sidebar navigation
and search targeting in-page anchors, search index inlined, no sibling assets. Ideal for
sharing as a release asset, email or ticket attachment. Multi-file stays the default.
Fixed
The Gradle reportTableTests task now tracks the TableTest YAML files as task inputs even
when no explicit inputDir is configured (default build/junit-jupiter, the JUnit output
dir override, and the junit-platform.properties location). Previously the task could stay UP-TO-DATE — or restore a stale report from the build cache — after new test runs. The
task is also ordered to run after Test tasks when both are requested.
A table test whose display-name slug equals its class slug (e.g. the same @DisplayName
on both) no longer silently loses one of the two published YAML files: the table file now
gets a numeric suffix, keeping the class and table files distinct.
A row whose scenario value is a prefix of another row's scenario (e.g. "Add" and
"Add negative") no longer absorbs the other row's pass/fail results; and rows with
duplicated scenario values now get no pass/fail roles (as documented) instead of the
OR-ed result of all duplicates.
When the input directory accumulates YAML from several test runs (e.g. a junit.platform.reporting.output.dir with {uniqueNumber}), the report now reflects the
most recently modified files instead of whichever run's files happened to sort first.
On Windows, index-page links and single-file anchors used backslashes (the platform file
separator) and were broken in browsers and Markdown/AsciiDoc renderers; generated links now
use / on every platform.