Replace features task with spec task#568
Conversation
- Rewrote all cucumber features as minitest/spec specs - Added spec task, and removed features task - Updated CI scripts to run spec instead of features - Stopped bundling Cucumber
|
I hope we can kick th tires on this early and get thins sorted out so it's solid while we land any more major changes for 5.1. |
There was a problem hiding this comment.
Pull request overview
This PR replaces Cucumber-based integration tests with Minitest/Spec specs, removing the Cucumber dependency entirely. All existing feature scenarios are faithfully ported to the new spec format using Aruba for command execution.
Changes:
- Rewrote all Cucumber feature files (options, minimum_score, rake_task) as Minitest/Spec integration specs with a shared
IntegrationTestHelpermodule - Removed Cucumber dependency from gemspec, Rakefile, and CI configuration; added a new
specRake task - Cleaned up
.rubocop.ymlby removing Cucumber-specific exclusions and adding one for the new helper
Reviewed changes
Copilot reviewed 16 out of 16 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| test/integration/integration_test_helper.rb | New shared helper module providing Aruba-based command runners and sample file creators |
| test/integration/options_spec.rb | Spec replacement for options.feature (bad option, version, help) |
| test/integration/minimum_score_spec.rb | Spec replacement for minimum_score.feature (score thresholds) |
| test/integration/rake_task_spec.rb | Spec replacement for rake_task.feature (paths, name, verbose, minimum-score, fail_on_error) |
| Rakefile | Replaced Cucumber task with Minitest spec task; updated default task |
| rubycritic.gemspec | Removed cucumber development dependency |
| .rubocop.yml | Removed Cucumber exclusion, added integration_test_helper exclusion |
| .github/workflows/main.yml | Updated CI step to run rake spec instead of cucumber |
| CHANGELOG.md | Added changelog entry for the migration |
| features/* (deleted) | Removed all Cucumber feature and step definition files |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- In CI, rename Features jobs to Spec - Configure Aruba timeout to 30 seconds, as had been the case in the features. - Fix creation of empty.rb in minimum_score_spec.rb, and then fix the spec to not false-negative on the correctly generated higher score.
- Exclude Style/OneClassPerFile in offending files. - When building ast_node_children in lib/rubycritic/analysers/helpers/ast_node.rb, use grep instead of select with a kind check (Style/SelectByKind) - When generating hash in RubyCritic::AnalysisSummary, use to_h directly (Style/ReduceToHash)
a4e2acc to
f7f540c
Compare
|
This should be ready for re-review, and possibly merging. |
|
@etagwerker what do you think the next step should be here? |
etagwerker
left a comment
There was a problem hiding this comment.
@faisal looks good, thank you!
This is a first pass at replacing our Cucumber-managed features with Minitest/Spec-managed specs. This implements #565.
Check list: