IntelliJ IDEA无法识别.feature文件

时间:2016-08-24 19:32:41

标签: intellij-idea cucumber-jvm gherkin

我在IntelliJ IDEA中安装了cuc-java和gherkin插件,但是当我创建.feature文件时,它不会被识别为特征文件。我确实重启了IntelliJ并检查过以确保插件设置窗口中已启用插件。feature file in IntelliJ

10 个答案:

答案 0 :(得分:10)

如果您启用了子步骤IntelliJ插件,则可能存在问题。你将需要删除并重新启动。

答案 1 :(得分:9)

检查设置 - >编辑器 - >文件类型。确认Cucumber Scenario已设置为* .feature的已注册模式。

答案 2 :(得分:6)

检查文件 - >设置 - >编辑 - >单击文件类型,然后单击文本文件类型。查看下面的“已注册模式”部分,确认您尝试创建的文件不在文本文件类型的已识别模式列表中。

如果您创建的文件没有最初为其提供.feature扩展名,则可能会发生这种情况。如果你这样做,然后尝试添加扩展名,那么IntelliJ可能仍然认为它是一个文本文件,不会将其视为一个特征文件。这对我来说很有用。

如果您发现IntelliJ将您想要的功能文件识别为其他类型的文件,请检查该文件类型的已识别模式,然后再次验证您尝试创建的文件不在该列表中

请参阅http://www.gisremotesensing.com/2014/11/solution-intellij-not-recognizing.html

对于某些设置,这只是故事的一半。一次,您删除了旧文件类型;现在按照以下步骤操作:

  • 选择" Cucumber场景"在"识别的文件类型"
  • 在"注册模式"框中单击" +"并输入" *。feature"

现在你已经准备好了。功能文件将恢复正常。

答案 3 :(得分:1)

此问题的根本原因是Cucumber-Java插件正在寻找从StepDefinitions文件中的软件包cucumber.api.java.en.Given(已描述)中导入的BDD注释。如果StepDefinitions文件由来自软件包io.cucumber.java.en.Given的BDD注释组成,则功能文件将无法识别/突出显示这些步骤。此问题与Intellij版本无关。

临时解决方案

将您的StepDefinitions文件中的导入语句从import io.cucumber.java.en.Given;更改为import cucumber.api.java.en.Given;,将其应用于When, Then and But,除非您不介意使用不推荐使用的方法;)

注意

如果您使用info.cukes依赖性,那么黄瓜Java插件将不会有任何问题

<dependency>
  <groupId>info.cukes</groupId>
  <artifactId>cucumber-java</artifactId>
  <version>1.2.5</version>
</dependency>

如果您有io.cucumber依赖项,则需要使用临时解决方案

<dependency>
  <groupId>io.cucumber</groupId>
  <artifactId>cucumber-java</artifactId>
  <version>4.6.0</version>
</dependency>

答案 4 :(得分:0)

从菜单的“文件”选项导航至设置,然后->编辑器->文件类型->选择黄瓜方案(可识别的文件类型) 观察是否已注册模式具有* .feature(如果没有),请单击+图标并在已注册模式中添加* .feature。 应用更改并保存。 它解决了我的.feature文件问题。谢谢!

答案 5 :(得分:0)

我在文件扩展名中有一个错字。容易错过。 验证功能部件文件名以.feature结尾。

答案 6 :(得分:0)

对我来说,情况甚至更糟。 .feature扩展名已分配给文本。以前创建的.feature文件仍然是真实功能文件,这很奇怪。但是新创建的特征文件被视为纯文本。因此,请检查所有相关的文件类型,因为intelIj对此做了奇怪的事情。

答案 7 :(得分:0)

我遇到了同样的问题: 我的IDE中未启用子步骤... soooo:

检查文件类型模式中以前的文件是否具有垃圾功能。不知何故,我在文本格式文件类型下有两个功能文件...导致新功能文件在创建时无法被识别。

我认为,如果您在创建时未将文件标记为功能文件,然后在重构时执行此操作,则会发生这种情况。然后intelliJ将特征文件的模式保存在文本类型...

答案 8 :(得分:0)

就我而言,当我尝试添加 import requests import bs4 import lxml result=requests.get("https://www.1mg.com/drugs-all-medicines") #print((type(result))) soup = bs4.BeautifulSoup(result.text,"lxml") #print(soup) scrape=soup.find_all('div', attrs={'class': 'style__font-bold___1k9Dl style__font-14px___YZZrf style__flex-row___2AKyf style__space-between___2mbvn style__padding-bottom-5px___2NrDR'}) for div in scrape: bar=div.find('div') print(bar.text) 文件时,出现了一个提示,我将文件添加为文本。然后Intellij 自动提示它找到了匹配.feature 文件的插件(Gherkin 插件)。安装 .feature 插件后,IntelliJ 自动将文件格式化为 Gherkin 格式

答案 9 :(得分:0)

InjelliJ IDEA 2021.1.2

我在“设置”>“编辑器”>“文件类型”>“按内容自动检测文件类型”下列出了我的功能文件名。删除了它,一切正常。

IntelliJ IDEA 2021.1.2 Cucumber