Files
openidea/plugins/official/test-runner
Muuandmuutot c8bdfa8edd feat(plugins): a host-owned diagnostics snapshot and line-end annotation order (#3103)
Plugins read problems from a host-owned snapshot that records every Diagnostics event per file and producer, instead of the UI-reported Problems reports, so what a plugin sees no longer depends on window lifetime or the invoking window. Adds the problems-changed workbench event (plugin API 1.8.0, gated at needs_api 8), editor focus events for files of other windows, severity style previews in plugin settings, and lays plugin annotations on the line-end chain before code-vision hints and inline blame. Components and fixtures are rebuilt for API 1.8.0.

Co-authored-by: muutot <92625353+muutot@users.noreply.github.com>
2026-11-14 00:07:03 +08:00
..

test-runner — API 1.4 example

Put this directory on PATH before installing/granting the plugin, so process:openidea-example-tests resolves to the included executable. Copy example.tests to a trusted project. Its presence enables the dynamic run-configurations export. Open it as plain text and click a gutter run button, or use Example: Run Tests / the Run selector for all tests.

The gutter command appends the test name as a filter to run.start. The fake executable prints a deliberately tiny start NAME / pass NAME protocol; test-results.parse retains split lines and emits stable test ids. Replace that protocol/parser and executable to integrate a real framework. This is an API example for integrating a test framework.

Build from the repository root:

plugins/build.sh official/test-runner
cargo test --manifest-path plugins/official/test-runner/Cargo.toml
cargo run -p ide-host --bin openidea-plugin -- check plugins/official/test-runner

Install the built package folder through Settings › Plugins › Install from Disk. See the plugin guide and official/community policy.

test-results.select-tests returns the selected names as the complete argv for openidea-example-tests, enabling Rerun Failed Tests and Run from the test tree. It returns None for unknown configurations or paths this example cannot filter.