You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The way the service parses Behave step definitions is in total disagreement with how Behave itself does.
In Behave tutorial, parameters in e.g. @then have the same name as the actual function parameter, and that is the way Behave later calls the step.
Example feature file:
Feature: Sending declarationsScenario: Declaration is sent at startGiven Module "iot-modbus" is running
Then Declaration for "iot-modbus" is present
and steps file:
frombehaveimportgiven, then@given('Module "{module}" is running')defstep_impl(context, module):
pass@then('Declaration for "{module}" is present')defget_vmc_declaration(context, module):
pass
Runs OK with Behave, but gives parsing errors in VS Code:
[Error - 2:10:20 PM] * Step Definition errors: Error: This Cucumber Expression has a problem at column 9:
Module "{module}" is running
^------^
Undefined parameter type 'module'.
✅ What did you expect to see?
Expected to properly parse the feature and steps files
📦 Which tool/library version are you using?
behave 1.2.6
VS Code 1.92.2
Cucumber extension 1.10
🔬 How could we reproduce it?
Install VS Code
Install Cucumber Extension
Open folder containing the files from above
📚 Any additional context?
No response
The text was updated successfully, but these errors were encountered:
Alternatively, when trying to generate steps from VS Code, this is what we get:
@then('Declaration for {string} contains {string}')defstep_then(context, string, string2):
pass
And it is not recognized by Behave as a valid step because of parameter name mismatch. Declaration for {string} contains {string2} works in Behave, but not in VS Code.
Your initial description uses behave‘s parse expressions instead of cucumber-expressions
The cucumber language-service supports cucumber-expressions (and regexp for cucumber) only AFAIK
The latest behave version has support for cucumber-expressions build in: v1.2.7.dev5 (and v1.2.7.dev4). Otherwise, you need to use the cucumber-expressions package directly.
PROCEDURE:
Use behave HEAD from the Git repository of install behave via Git repo tag v1.2.7.dev5 (or newer)
But first verify that it works for you: Run your feature file with behave or use the feature-file for cucumber-expressions below
Then check that the VSCode cucumber language-server is working for you or not
👓 What did you see?
The way the service parses Behave step definitions is in total disagreement with how Behave itself does.
In Behave tutorial, parameters in e.g. @then have the same name as the actual function parameter, and that is the way Behave later calls the step.
Example feature file:
and steps file:
Runs OK with Behave, but gives parsing errors in VS Code:
✅ What did you expect to see?
Expected to properly parse the feature and steps files
📦 Which tool/library version are you using?
behave 1.2.6
VS Code 1.92.2
Cucumber extension 1.10
🔬 How could we reproduce it?
📚 Any additional context?
No response
The text was updated successfully, but these errors were encountered: