Releases: jimasp/behave-vsc
0.6.4
General
If you have any problems that are specific to this release, then please read through these release notes (and the troubleshooting guide in the readme). If that does not resolve your issue, then use the extension's uninstall dropdown in vscode to install an older version of the extension and raise an issue on github.
What's Changed
Breaking changes
- None
New functionality
Support imported steps that are nested in the steps folder:
. my-project
. |-- features/
. |-- steps/
. | -- steps.py <-- from more import more_steps.py
. | -- more/
. | -- more_steps.py
Support steps in other features folders:
. my-project
. |-- features/
. |-- features2/
. | -- subfolder
. | -- steps
. | -- steps.py
Other changes
- Reorder command line so junit comes last for quicker copy/paste
- Add test example projects for new functionality
Fixes
- None
Tested with
- behave 1.2.6
- Python 3.9.13
- Visual Studio Code 1.83.0
- ms-python.python extension v2023.18.0
- Pop!_OS 22.04 LTS / Windows 10
0.6.3
General
If you have any problems that are specific to this release, then please read through these release notes (and the troubleshooting guide in the readme). If that does not resolve your issue, then use the extension's uninstall dropdown in vscode to install an older version of the extension and raise an issue on github.
What's Changed
Breaking changes
- None
New functionality
Support sibling steps structure:
. my-project
. +-- features/
. +-- steps/
Other changes
- While Gherkin is case sensitive (Feature, Given, When, Then), behave is more tolerant. As such, gherkin colourisation will be case sensitive, but parsing will not.
Fixes
Tested with
- behave 1.2.6
- Python 3.9.13
- Visual Studio Code 1.83.0
- ms-python.python extension v2023.18.0
- Pop!_OS 22.04 LTS / Windows 10
v0.6.1
General
If you have any problems that are specific to this release, then please read through these release notes (and the troubleshooting guide in the readme). If that does not resolve your issue, then use the extension's uninstall dropdown in vscode to install an older version of the extension and raise an issue on github.
What's Changed
This is a minor bug fix release.
Breaking changes
- Gherkin keywords are case sensitive (Feature, Scenario, Given, When, Then, etc.). Feature file parsing has been updated to reflect this.
New functionality
- None
Other changes
- show warning if a feature does not have a name (unless the feature is commented out)
Fixes
- handle feature file name missing and show warning
- handle double quotes in scenario name when running single scenario (#34)
Tested with
- behave 1.2.6
- Python 3.9.13
- Visual Studio Code 1.82.0
- ms-python.python extension v2023.16.0
- Pop!_OS 22.04 LTS / Windows 10
v0.6.0
General
If you have any problems that are specific to this release, then please read through these release notes (and the troubleshooting guide in the readme). If that does not resolve your issue, then use the extension's uninstall dropdown in vscode to install an older version of the extension and raise an issue on github.
What's Changed
Breaking changes
- Test runs are now feature-based, not scenario-based.
- Smart test runs if runParallel is disabled. Selected features now run as features and where possible are grouped into a piped regex to reduce the number of behave instances. This should enable faster test runs when selecting folders or multiple features, especially where setup work (e.g. before_all is slow). It also gives more flexibility to diagnosing e.g. intermittent test failures where your tests are not properly isolated, as you can combine tests in different ways. The basic preferential order is run all > run folders > run features > run scenarios. Examples:
- select the entire project and you get
python -m behave
- select a folder and you get `python -m behave -i "features/myfolder/"
- select two folders and you get
python -m behave -i "features/myfolder1/|features/myfolder2/"
- select two features and you get
python -m behave -i "features/myfeature1.feature$|features/myfeature2.feature$"
- select one folder and two features and you get -i "features/myfolder/|features/myfeature1.feature$|features/myfeature2.feature$"
- select one feature and two separate scenarios in another feature and you get two executions - one for the first feature:
python -m behave -i "features/myfeature1.feature$"
and one for the selected scenarios:python -m behave -i "features/myfeature.feature" -n "^myscenario1$|^myscenario2$"
- select the entire project and you get
- If you have enabled runParallel, then the above will not apply. Instead features (not scenarios as previously) will in separate behave instances.
New functionality
- In this release, this is all covered by above breaking changes
Other changes
- runAllAsOne setting has been removed, because wherever possible features/scenarios will run together anyway if runParallel is disabled.
- fastSkipTags setting has been removed, because it is no longer useful given the above changes. (While it would have still enabled you to skip features in parallel mode where you had e.g. selected to run a top level folder, there is little performance benefit to this case due to the parallel behave instances returning normal behave skips quickly anyway.)
- showSettingsWarnings has been removed, because there are no longer any conflicting settings.
- Command output now includes the junit parameters.
- "Go to Step Definition" now defaults to F12 (previously ALT+F12).
- Code refactoring/tidyup
- Documentation updates
Fixes
- Support
@behave.step
style declarations for step navigation
Tested with
- behave 1.2.6
- Python 3.9.13
- Visual Studio Code 1.77.0
- ms-python.python extension v2023.6.0
- Pop!_OS 22.04 LTS / Windows 10
v0.5.0
General
If you have any problems that are specific to this release, then please read through these release notes (and the troubleshooting guide in the readme). If that does not resolve your issue, then use the uninstall dropdown in vscode to install an older version of the extension and raise an issue on github.
What's Changed
Breaking changes
- Removal of deprecated settings
behave-vsc.envVarList
andbehave-vsc.fastSkipList
New functionality
- Automatic Gherkin syntax highlighting (colourisation), including smart parameter recognition.
- Feature file formatting (default Ctrl+K,Ctrl+F).
- Autocompletion in feature files (this is smart, so e.g. typing
And
after aGiven
step will only show@given
or@step
step suggestions). - Step/feature parsing now updates via live refresh (before save)
- Some snippets thrown in
- Gherkin icon for feature files
Fixes
- None
Other
- Gherkin icon
- Failed tests now output exception type
- Reorganised integration tests
- Updated docs
Tested with
- behave 1.2.6
- Python 3.9.7
- Visual Studio Code 1.72.2
- ms-python.python extension v2022.16.1
- Ubuntu 22.04 / Windows 10
v0.4.2
General
If you have any problems that are specific to this release, then please read through these release notes (and the troubleshooting guide in the readme). If that does not resolve your issue, then use the uninstall dropdown in vscode to install an older version of the extension and raise an issue on github.
What's Changed
Breaking changes
- None
New functionality
- None
Fixes
- Resolved issue causing unresponsive debug stop for other test runners (e.g. pytest).
Other
- None
Tested with
- behave 1.2.6
- Python 3.9.7
- Visual Studio Code 1.70.1
- ms-python.python extension v2022.12.1
- Ubuntu 22.04 / Windows 10
v0.4.1
General
If you have any problems that are specific to this release, then please read through these release notes (and the troubleshooting guide in the readme). If that does not resolve your issue, then use the uninstall dropdown in vscode to install an older version of the extension and raise an issue on github.
What's Changed
Breaking changes
- None
New functionality
- None
Fixes
- Scenario Outlines that have a parameter in the name should now work correctly.
- Falling back to workbench action hook to determine debug stop, as debugpy tracker events have changed and can no longer be used to distinguish between termination types.
Other
- Added tests for Scenario Outlines that have a parameter in the name
- Doc updates
Tested with
- behave 1.2.6
- Python 3.9.7
- Visual Studio Code 1.70.1
- ms-python.python extension v2022.12.1
- Ubuntu 22.04 / Windows 10
v0.4.0
General
If you have any problems that are specific to this release, then please read through these release notes (and the troubleshooting guide in the readme). If that does not resolve your issue, then use the uninstall dropdown in vscode to install an older version of the extension and raise an issue on github.
What's Changed
Breaking changes
- None
New functionality
- "Find All Step References" from inside a step file. (Default keybinding is Alt+F12.) This is basically the reverse of "Go to Step Definition". If there is a single match, it will go directly to the match. If there are multiple matches it will open the "Step References" window.
- "Step References" window navigation - quickly navigate between step references with a keybinding (Default keybindings are F4 + Shift F4.)
Fixes
- behave ConfigError will no longer cause the test run to hang (it will now stop the test run)
- if xRay is enabled, error stack should now start from correct line consistently
Other
- "Go to Step Definition" will now go to the feature definition itself, not the matched text
- added ALT+F12 default keybinding for "Go to Step Definition"
- find step now warns if parse not yet complete
- step parsing now creates a map to resolve steps in both directions
- added basic count check tests for find all references functionality
- documentation updates to readme/contributing
- minor code refactorings
Tested with
- behave 1.2.6
- Python 3.9.7
- Visual Studio Code 1.68.1
- ms-python.python extension v2022.8.0
- Ubuntu 22.04 / Windows 10
v0.3.1
v0.3.0
General
0.3.0 is a big update, with major code changes.
If you have any problems that are specific to this release, then please read through these release notes (and the troubleshooting guide in the readme). If that does not resolve your issue, then use the uninstall dropdown in vscode to install an older version of the extension and raise an issue on github.
What's Changed
Breaking changes
- environment variables are now passed through to behave (bugfix). the envVarOverrides setting can be used for overrides (or just adding a variable).
- settings.json:
- envVarList and fastSkipList are deprecated, please use the replacement settings envVarOverrides and fastSkipTags. note that the new settings are in json object/array format, not csv format. You can use both settings as your team migrates, but the new setting will override the old one, so they should have the same values. See examples below:
"behave-vsc.envVarList": "'myvar1':'val1', 'myvar2':'val2'
= becomes =>"behave-vsc.envVarOverrides": { "myvar1": "val1", 'myvar2':'val2' }
"behave-vsc.fastSkipList": "@skip, @skip_also"
= becomes =>"behave-vsc.fastSkipTags": [ "@skip", "@skip_also" ]
- featuresPath setting must now be specified if it is not the default (
./features
) path in the workspace folder - runAllAsOne setting will no longer default to true if runParallel is true (bugfix)
- envVarList and fastSkipList are deprecated, please use the replacement settings envVarOverrides and fastSkipTags. note that the new settings are in json object/array format, not csv format. You can use both settings as your team migrates, but the new setting will override the old one, so they should have the same values. See examples below:
New functionality
- added support for multi-root workspaces
- test result parsing is now done via junit, not json output. this enables plain output to appear in the output window, improves test result update speed in the UI, and makes parsing results more reliable.
- nested feature folders now appear as test tree nodes, so you can select/run a sub folder at any level
- environment variable overrides from envVarOverrides are now output in the behave command in a format such that they can be copy/pasted and run
- added warning output for settings.json flags for combinations where a flag may sometimes become inactive (and added setting 'showSettingsWarnings' (default true) that can be set false to turn these warnings off)
- added setting 'multiRootRunWorkspacesInParallel' to control whether multi-root workspaces run in parallel (default true)
- added setting 'xRay' to enable/disable extension diagnostic logs and error stack traces (default false)
Fixes
- test tree should no longer rebuild when vscode's new file history functionality adds/deletes .tmp files
- go to step definition for steps where the e.g.
@when(...)
spans multiple lines should now work in simple cases - git reverted file no longer opens in read-only mode when go to step definition is clicked
- runAllAsOne will not default to true if runParallel is true
- environment variables are now passed through to behave so the extension works works as per the command line
Other
- minor changes to 'go to step definition' parsing/matching
- extension errors/warnings are always window notifications now (still logged in output)
- added tests for basic go to step definition functionality
- added multiroot tests
- check that user has not set an invalid features path, and output full path in output window
- documentation updates to readme/contributing/settings docs
- extension developer QoL - added more diagnostic logging
- various code refactorings
- dropped the world "simple" from the extension readme description 😦 (multi-root workspace support has added complexity)
Tested with
- behave 1.2.6
- Python 3.9.7
- Visual Studio Code 1.67.2
- ms-python.python extension v2022.6.2
- Ubuntu 22.04 / Windows 10