Files
openidea/plugins/official/test-runner
l0ng-ai 0b6bf83b9e feat(plugins): validate run target launches (#2427)
Closes #2408

Plugin run targets were static argv wrappers: a plugin couldn't refuse a built-in Run/Test/Debug launch through its target (for example when its container project is stopped), so the wrapper started and could start the environment as a side effect. API 1.5 adds an optional run-target-validation export: after trust, ownership, process-grant and pin checks the host calls validate with the operation, bare program name and working directory; an error refuses the launch with the plugin's (prefixed, bounded) message and keeps the selected target. Plugins without the export behave as before. Calls wake reclaimed instances, use the host call timeout, are cancelled with the launch, and fail closed on trap/timeout; for remote projects validation runs on the server. SDK helpers, plugins/README.md and fixtures updated.
2026-11-10 06:48:36 +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.