Skip to content

Releases: jimasp/behave-vsc

0.6.4

15 Oct 18:12
f4b2f54
Compare
Choose a tag to compare
0.6.4 Pre-release
Pre-release

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

by @jimasp in #42

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

08 Oct 17:51
215d2a1
Compare
Choose a tag to compare
0.6.3 Pre-release
Pre-release

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

by @jimasp in #38

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

17 Sep 15:59
554b868
Compare
Choose a tag to compare
v0.6.1 Pre-release
Pre-release

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)

by @jimasp in #35

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

02 Apr 19:38
Compare
Choose a tag to compare
v0.6.0 Pre-release
Pre-release

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$"
  • 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

by @jimasp in #29

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

05 Nov 16:37
Compare
Choose a tag to compare
v0.5.0 Pre-release
Pre-release

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 and behave-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 a Given 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

by @jimasp in #24

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

26 Aug 17:29
de32d19
Compare
Choose a tag to compare
v0.4.2 Pre-release
Pre-release

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

by @jimasp in #22

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

20 Aug 14:14
c1cedbe
Compare
Choose a tag to compare
v0.4.1 Pre-release
Pre-release

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

by @jimasp in #20

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

27 Jun 08:23
0695d14
Compare
Choose a tag to compare
v0.4.0 Pre-release
Pre-release

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

by @jimasp in #14

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

08 Jun 19:58
8348580
Compare
Choose a tag to compare
v0.3.1 Pre-release
Pre-release

What's Changed

Fixes

  • quick fix for envVarList deprecation warning text

by @jimasp in #13

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

v0.3.0

03 Jun 13:38
Compare
Choose a tag to compare
v0.3.0 Pre-release
Pre-release

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)

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)

by @jimasp in #11

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