Skip to content

Conversation

@kbwo
Copy link
Owner

@kbwo kbwo commented May 24, 2025

This commit introduces a new test adapter for the RSpec testing framework and includes general code cleanup.

RSpec Adapter Features:

  • Implements the Runner trait for RSpec.
  • Uses tree-sitter-ruby for test discovery from *_spec.rb files, identifying describe, context, and it blocks.
  • Executes RSpec tests using the rspec -f json command and parses the JSON output to generate diagnostics for failed tests.
  • Detects RSpec workspaces by looking for Gemfile or .rspec files.
  • Includes a demo RSpec project (demo/rspec_project) for testing.
  • Adds integration tests (crates/adapter/tests/rspec_test.rs) covering workspace detection, test discovery, and diagnostic parsing.

Cleanup and Fixes:

  • I refactored the RSpec adapter to be fully synchronous, resolving previous compilation issues with the Runner trait.
  • I removed unused imports and dead code in the RSpec adapter files.
  • I ensured the crates/adapter/src/runner/phpunit.rs uses the correct tree-sitter PHP language function, confirming a previous fix.
  • I verified that the entire project builds successfully using cargo build --all-targets.
  • I confirmed all RSpec-specific tests pass. Pre-existing test failures in Jest, Node, and Vitest adapters remain and are noted as out of scope for this change.

The implementation adheres to the synchronous nature of the Runner trait, ensuring correct integration with the existing adapter framework.

This commit introduces a new test adapter for the RSpec testing framework
and includes general code cleanup.

RSpec Adapter Features:
- Implements the `Runner` trait for RSpec.
- Uses `tree-sitter-ruby` for test discovery from `*_spec.rb` files,
  identifying `describe`, `context`, and `it` blocks.
- Executes RSpec tests using the `rspec -f json` command and parses the
  JSON output to generate diagnostics for failed tests.
- Detects RSpec workspaces by looking for `Gemfile` or `.rspec` files.
- Includes a demo RSpec project (`demo/rspec_project`) for testing.
- Adds integration tests (`crates/adapter/tests/rspec_test.rs`)
  covering workspace detection, test discovery, and diagnostic parsing.

Cleanup and Fixes:
- I refactored the RSpec adapter to be fully synchronous, resolving previous
  compilation issues with the `Runner` trait.
- I removed unused imports and dead code in the RSpec adapter files.
- I ensured the `crates/adapter/src/runner/phpunit.rs` uses the correct
  tree-sitter PHP language function, confirming a previous fix.
- I verified that the entire project builds successfully using
  `cargo build --all-targets`.
- I confirmed all RSpec-specific tests pass. Pre-existing test failures
  in Jest, Node, and Vitest adapters remain and are noted as out of scope
  for this change.

The implementation adheres to the synchronous nature of the `Runner`
trait, ensuring correct integration with the existing adapter framework.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants