JUnit Failure Notes turns your XML test report into a note

Read test counts and folded failure logs in a new note beside your local XML report.

MIT · no telemetry · core features free

The report shows four test cases, a count warning and folded failure callouts.
Open larger
version
1.1.0
released
downloads
19
review
Passed
health
Excellent
license
MIT
listed for
Desktop, Mobile
obsidian
1.13.4 or later

Tested on desktop only.

Directory facts fetched from community.obsidian.md/users/theluckystrike.

About JUnit Failure Notes

You keep project notes in Obsidian and want test failures beside your work log.

Choose a JUnit XML file inside your vault to create a Markdown report beside it. Read the counts and open folded failure logs. The XML source stays unchanged.

The command reads local files through the Vault API. It does not fetch reports from a CI server or refresh notes after a later test run.

Choose a local XML report and inspect test counts and a failure logPlay demo

Free features

Choose one local XML file

Choose an XML path from your vault and create a report beside the source. The command opens the new note. Invalid input shows an error.

Counts from test cases

Plain testsuite and testsuites roots can contain nested suites. Counts come from testcase elements. Error status takes precedence over failure, followed by skipped and passed.

Folded failure logs

Failed and errored cases get folded callouts with names, messages and case logs. Code fences keep supplied HTML and Markdown literal. Message and text fields truncate separately at 20,000 characters.

Declared count warnings

The report compares suite totals with testcase counts and shows differences. Parent and child suite totals do not get added together.

New notes with source links

The new note links to its source XML path. If the report name exists, the command adds a number starting with 2. Existing reports keep their content.

Free reports accept up to 2 MiB and 5,000 testcase elements per XML file; folder reports and baseline comparison need Pro.

Pro features

Pro costs $5 a month or $15 one time through GitHub Sponsors. One sponsorship turns on Pro in every plugin that has it.

Folder reports Pro

Select a vault folder to process its XML files, including child folders. Each valid file gets its own report. The result lists errors without stopping later files.

Local baseline comparison Pro

Save unique failed and errored class-name and test-name pairs in local settings. Compare a later report to list added, resolved and retained pairs. The comparison ignores log text and duration.

Set up JUnit Failure Notes

needs

  • Obsidian 1.13.4 or later

steps

  1. Save a JUnit XML report inside your vault.

  2. Run Create report from XML from the command palette.

  3. Choose the source path and select Create report.

  4. Read the counts, open a folded failure callout and follow Source XML to inspect the source.

If the app can't find a new plugin yet, try again later. Obsidian says a plugin that passes the review shows in the app within 24 hours.

How to turn a JUnit XML report into an Obsidian note

Known limits of JUnit Failure Notes

  • XML input stops at 2 MiB and at 5,000 testcase elements, and the count includes testcase tags outside the supported suite tree.
  • The message attribute and the element text truncate separately at 20,000 characters, so one log entry can be longer than 20,000 characters.
  • The GitHub sign-in token stays in memory when Obsidian secret storage is not available, so a restart needs a new sign-in.

Need a change for your team? I build custom Obsidian plugins and features.

Questions about JUnit Failure Notes

Which XML files can I use?

Use plain testsuite or testsuites roots. Namespaces, DOCTYPE and ENTITY declarations are rejected. The limits are 2 MiB and 5,000 testcase elements.

Does the report include suite logs and timings?

No. Suite logs, timings and properties are omitted. Passed and skipped cases do not get failure callouts.

Will a new report replace my earlier note?

No. The command adds a numbered suffix when the output path exists. It does not refresh generated notes.

What does the saved baseline compare?

It compares unique class-name and test-name pairs for failed or errored cases. Duplicate pairs count once in the comparison. Duplicate testcase elements still count separately in the result table.

Can I move the XML after creating a note?

The report records the source path at creation. The plugin does not track later moves. Check the source link after you move or rename the XML.

Network use

The plugin sends no requests before you sign in with GitHub. Sign-in sends device authorization data to github.com; sponsorship checks send your token and account query to api.github.com. Successful checks last 7 days, failed checks can retry after 6 hours, and no vault content enters these requests.

Read the full network disclosure

Questions or ideas?

Tell me what is broken in JUnit Failure Notes, or what it should do next.

Send feedback

JUnit Failure Notes 1.1.0, MIT license

MIT · no telemetry · core features free