🐺

Cucumber (cypress) - "ステップ未定義エラー "の解決

2024/08/30に公開

はじめに

VSCodeでCucumberのステップを定義したfeatureファイルは
プロジェクトの構成次第ではStepとの紐付けを認識できない場合があり
設定を加えて実装に飛べるようにする話です。

環境

  • Cypress
  • Cucumber

Cucumberの拡張機能を入れる

Cucumberの公式拡張機能は入れておく

https://marketplace.visualstudio.com/items?itemName=CucumberOpen.cucumber-official

設定ファイルの記述

VSCodeのsettings.jsonを作成する

設定内容

{
    "cucumber.features": [
        "cypress/e2e/features/*.feature"
    ], "cucumber.glue": [
        "cypress/e2e/step_definitions/*.js"
    ]
}

※ディレクトリはそれぞれのプロジェクトに合わせる

cucumber.features

cucumber.featuresの設定は、拡張子が.featureファイルを探す場所を上書きする。
featureファイルが見つからない場合、オートコンプリートは動作しないらしい。

デフォルトは下記内容

{
  "cucumber.features": [
    "src/test/**/*.feature",
    "features/**/*.feature",
    "tests/**/*.feature",
    "*specs*/**/*.feature"
  ]
}

https://github.com/cucumber/vscode/blob/main/README.md#cucumberfeatures

cucumber.glue

cucumber.glueの設定は、ステップ定義とパラメータタイプが定義されているソースコードを拡張機能が探す場所を上書きする。
glueファイルが見つからない場合、オートコンプリートは動作せず、すべてのGherkinステップは未定義として下線が引かれてしまう。
ステップ定義の生成も機能しない。

デフォルトは下記内容

{
  "cucumber.glue": [
    "*specs*/**/*.cs",
    "features/**/*.js",
    "features/**/*.jsx",
    "features/**/*.php",
    "features/**/*.py",
    "features/**/*.rs",
    "features/**/*.rb",
    "features/**/*.ts",
    "features/**/*.tsx",
    "features/**/*_test.go",
    "src/test/**/*.java",
    "tests/**/*.py",
    "tests/**/*.rs"
  ]
}

https://github.com/cucumber/vscode/blob/main/README.md#cucumberglue

その他詳細

その他の詳細はREADMEに記載されています。

https://github.com/cucumber/vscode/blob/main/README.md


Discussion