在VSCode中,是否可以从特性文件导航到步骤定义?

29

我主要使用RubyMine进行Cucumber/Ruby开发,现在我开始接触VSCode,并且能够运行和调试测试用例。

我找不到从feature跳转到step definition的方法。我尝试搜索了一些扩展,但没有帮助。

是否有任何配置可以实现从feature跳转到step definition?


你可以在Webstorm中默认使用。想知道是否可以在Vs Code中实现这一点。 - Kellen Stuart
2个回答

50
你可以从 VSCode Marketplace 安装 Cucumber (Gherkin) Full Support 扩展程序:
安装完成后,重新加载 VSCode。 为了使其在 Ruby 中使用,您需要执行以下操作:
  • 按下 Ctrl + , 打开 User Settings

  • 向下滚动找到 Cucumber Auto Complete

  • 在右侧你需要修改这些设置(你可以在扩展程序页面找到 2 个例子)。在我的情况下,我添加了以下内容:

      "cucumberautocomplete.steps": [
          "features/step_definitions/*.rb"
      ],
      "cucumberautocomplete.syncfeatures": "features/*feature"
    
  • 重新加载 VSCode

  • 打开一个.feature文件并右键单击任何步骤,您应该可以使用跳转到定义峰值定义

希望您能使其正常运行!


4
在查看特性文件中的某个步骤时,是否看到警告信息“[cucumberautocomplete] was unable to find step for ...”?如果是这样,那么我认为路径必须以不同的方式指定。 - Daniel Fintinariu
2
以上方法对我无效。每一行都出现了[cucumberautocomplete]无法找到...步骤的错误。我确认文件夹是正确的。 - theog
2
排序对我来说部分有效 - 有些步骤定义正确导航 - 其他则不行... :-/ - Sam Joseph
2
我在特性和步骤的路径上遇到了一些问题。原因是我跳过了扩展文档中提到的.vscode/文件夹的创建。以防万一,这可能会像对我有用一样帮助其他人:https://stackoverflow.com/a/61610271/7012085 - chick3n0x07CC
2
我将我的功能文件设置在cypress/integration/目录下,例如cypress/integration/google.feature - 对应的js文件应该在cypress/integration/google/google.js中。而且,VSCode导航的设置如下:"cucumberautocomplete.steps": [ "cypress/integration/**/*.js",
]。
- Sasha Bond
显示剩余6条评论

2

我有一个使用Java的黄瓜项目,下面的方法对我有效:

 "cucumberautocomplete.steps": [
    "**/*Steps.java"
],
"cucumberautocomplete.syncfeatures": "**/*.feature"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接