Skip to content

Support for step parameters in Behave seems to be broken #230

Open
@Cavaler

Description

@Cavaler

👓 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:

Feature: Sending declarations

  Scenario: Declaration is sent at start
    Given Module "iot-modbus" is running
    Then Declaration for "iot-modbus" is present

and steps file:

from behave import given, then

@given('Module "{module}" is running')
def step_impl(context, module):
  pass

@then('Declaration for "{module}" is present')
def get_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?

  1. Install VS Code
  2. Install Cucumber Extension
  3. Open folder containing the files from above

📚 Any additional context?

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions