Implement io.cucumber.eclipse.python bundle for Cucumber-Behave launcher #569
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.
This PR implements a new Eclipse plugin bundle
io.cucumber.eclipse.python
that enables launching Cucumber feature files using Python's Behave framework, addressing the requirements outlined in the issue.Overview
Following the architecture of the existing
io.cucumber.eclipse.java
bundle, this implementation provides a complete Eclipse launch configuration for executing Cucumber feature files with Python/Behave. Users can now right-click on.feature
files in Python projects and run them using the existing "Cucumber" context menu option.What's Implemented
Core Launch Framework
cucumber.eclipse.python.launching.localCucumberBehave
for running feature files with BehaveCucumberBehaveLaunchConfigurationDelegate
creates and manages Python processes, builds Behave commands with appropriate flags and optionsEclipse Integration
ILauncher
interface from the editor bundle, following the same pattern asCucumberRuntimeLauncher
in the Java bundleCucumberFeatureLaunchShortcut
- users right-click on feature files and select "Run As > Cucumber"Bundle Structure
Example Project
Added
examples/python-calculator/
demonstrating complete usage:Key Features
python
)ILauncher
interface for seamless editor integrationDesign Decisions
ILauncher
interface to integrate with the editor's launch framework, following the pattern established byCucumberRuntimeLauncher
@Component
annotation) for automatic registration and discovery byCucumberServiceRegistry
ProcessBuilder
for direct Behave execution without complex dependenciesIntegration
io.cucumber.eclipse.python
module to parentpom.xml
io.cucumber.eclipse.feature/feature.xml
for distributionio.cucumber.eclipse.java
CucumberFeatureLaunchShortcut
viaILauncher
interfaceTesting
The implementation can be tested by:
pip install behave
).feature
fileThe Python/Behave launcher will automatically be used for Python projects. The included example project can be used for verification.
Future Enhancements
This implementation provides a solid foundation for future features:
Closes #[issue-number]
Original prompt
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.