feat: add junit xml and html test reports#1655
Merged
Sam Gammon (sgammon) merged 13 commits intomainfrom Sep 21, 2025
Merged
Conversation
2 tasks
Signed-off-by: Sam Gammon <sam@elide.dev>
5cca244 to
9eff1ce
Compare
Signed-off-by: Sam Gammon <sam@elide.dev>
Signed-off-by: Sam Gammon <sam@elide.dev>
There was a problem hiding this comment.
Pull Request Overview
This PR adds test reporting capabilities to the Elide tooling framework by implementing both JUnit XML and HTML test report generation. The implementation supports converting Elide test results into standard formats that can be consumed by CI/CD systems, IDEs, and test reporting tools.
Key changes:
- Extended test data structures to include individual test results alongside aggregate statistics
- Implemented JUnit XML reporter with proper data model and formatting
- Created interactive HTML reporter with search, filtering, and collapsible sections
Reviewed Changes
Copilot reviewed 14 out of 15 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| TestRunResult.kt | Added testResults property to include individual test case results |
| TestPostProcessor.kt | Updated interface documentation and method signature formatting |
| TestPostProcessingOptions.kt | Added report format, output path, and suite name configuration options |
| TestReportProcessorTest.kt | Comprehensive test suite for both XML and HTML report generation |
| ElideTestRunner.kt | Modified to collect individual test results for reporting |
| JUnitXmlReporter.kt | Core XML report generation logic with JUnit format compliance |
| JUnitXmlModel.kt | Data models for JUnit XML structure with Jackson annotations |
| HtmlTestReporter.kt | HTML report generator using kotlinx-html DSL |
| HtmlTestModels.kt | Data models and conversion logic for HTML reports |
| HtmlTemplateBuilder.kt | HTML template generation with embedded CSS and JavaScript |
| HtmlAssets.kt | Embedded CSS and JavaScript assets for interactive features |
| TestReportProcessor.kt | Main processor implementation with format switching |
| build.gradle.kts | Added Jackson XML dependencies |
| elide.versions.toml | Added jackson-dataformat-xml dependency version |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
packages/tooling/src/main/kotlin/elide/tooling/testing/TestPostProcessingOptions.kt
Show resolved
Hide resolved
packages/builder/src/test/kotlin/elide/tooling/reporting/TestReportProcessorTest.kt
Show resolved
Hide resolved
packages/builder/src/test/kotlin/elide/tooling/reporting/TestReportProcessorTest.kt
Show resolved
Hide resolved
packages/builder/src/main/kotlin/elide/tooling/reporting/html/HtmlTemplateBuilder.kt
Show resolved
Hide resolved
packages/builder/src/main/kotlin/elide/tooling/reporting/html/HtmlAssets.kt
Show resolved
Hide resolved
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Coming soon; supersedes #1652.