-
Notifications
You must be signed in to change notification settings - Fork 39
feat: test post-processors #1589
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
feat(cli): add `TestingOptions` and consolidate coverage flags feat(cli): load and run test-post-processors after test runs chore(graalvm): unwind coupling between test runner and results chore(builder): move test result classes to `tooling` chore: re-pin modules `tooling`, `builder`, `graalvm` Relates-to: #1484 Relates-to: #1483 Relates-to: #1575 Signed-off-by: Sam Gammon <sam@elide.dev>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR introduces a test post-processing system to enable pluggable processing of test results after test runs complete. The main purpose is to enable features like coverage reporting and test result reporting through a service provider interface (SPI) pattern.
Key changes include:
- Addition of
TestPostProcessorandTestPostProcessorFactoryinterfaces for extensible test result processing - Refactoring of test result types from polyglot-specific packages to a shared
toolingpackage for broader IDE integration support - Consolidation of CLI testing options into a dedicated
TestingOptionsclass
Reviewed Changes
Copilot reviewed 30 out of 31 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| packages/tooling/src/main/kotlin/elide/tooling/testing/*.kt | New test result data classes and post-processor interfaces moved from graalvm package |
| packages/graalvm/src/main/kotlin/elide/runtime/intrinsics/testing/*.kt | Updated imports to use relocated test result types |
| packages/cli/src/main/kotlin/elide/tool/cli/cmd/repl/ToolShellCommand.kt | Integration of post-processor execution after test runs and consolidated testing options |
| packages/builder/src/main/kotlin/elide/tooling/runner/*.kt | Updated to use relocated test result types |
| packages/builder/src/main/kotlin/elide/tooling/reporting/TestReportProcessor.kt | Stub implementation of test report post-processor |
Summary
Adds a concept of
TestPostProcessorinstances; such instances are suspending consumers ofTestRunResults after a test run, and are loaded via aTestPostProcessorFactorytype which is mapped in through SPI.The first two
TestPostProcessorimplementations will likely be coverage (#1484) and test reporting (#1483).Additionally, test result types (i.e.
TestResultandTestRunResult, etc.), have been decoupled from polyglot types and moved fromgraalvmandbuildertotooling, where they can be used for things like IDE integration. This refactor is precursor work for our JVM runner compat stuff.Changelog