2017-06-01 94 views
0

我有一个java cucumber项目,它设置了所有需要的依赖项,运行最新的cucumber-java,cucumber-junit和小黄瓜等。也有黄瓜和小黄瓜安装的插件。无法创建.feature黄瓜文件IntelliJ - '无法创建类文件'

IntelliJ不允许我创建扩展名为“.feature”的文件。我收到'无法创建类文件'错误。奇怪的是,如果我在./resources/features文件夹中创建了一个常规文件(即没有.feature扩展名),然后将其作为“黄瓜场景”文件进行关联,IntelliJ会识别该文件并在其前缀中添加绿色黄瓜标志文件目录。它还识别所有'When When Then'语法并正确地在文件中对其进行格式化。但是当我运行我的亚军时,它报告没有找到任何功能。我认为这是因为它正在寻找'.feature'的扩展名?

有没有人有过这个问题?它让我感到困惑,因为它看起来像黄瓜和黄瓜,因为它允许我创建一个黄瓜场景文件,但不是'.feature'扩展名。有关信息,我的跑步者文件如下所示。感谢任何帮助,其驱使我疯狂:)

@RunWith(Cucumber.class) 
@CucumberOptions(features = "C:\\Users\\joe.bloggs\\Desktop\\dram_automation_suite\\src\\test\\resources\\features") 
public class CucumberRunTest { 
} 
+0

另外,下面是我的目录: 的src /测试/ JAVA/ COM/mypackage中/ \t \t StepsDef \t \t鱼钩 \t \t \t CucumberRunner 资源 功能 等等(这是公认的特征文件黄瓜但没有.feature分机) –

+0

更新:我注意到,如果我给它的功能的确切名称,即@CucumberOptions(features =“C:\\ Users \\ joe.bloggs \\ Desktop \\ dram_automation_suite \\ SRC \\ \\测试资源\\ \\功能*名”那么这实际上起作用。它显然不可持续,因为这意味着我只能拥有一个功能文件。我如何使这更通用? –

回答

1

你的错误听起来确实很奇怪。我在创意中创建文件,任何文件的经验都很有用。你确定你没有试图创建一个Java文件,即一个类?

对于您的其他问题,将功能文件放置在测试跑步者所在的同一个软件包中。但在资源目录中。

如果你的亚军住在包com.company.lucy那么该功能的文件存储在src/test/resources/com/company/lucy 这将使黄瓜找到它,因为黄瓜搜索它的类路径和使用每一个文件它查找名为.feature

这将让你speciy你的亚军为:

@RunWith(Cucumber.class) 
public class CucumberRunTest { 
} 

而你的维护许多功能文件的问题将消失。

因为这似乎是一个Maven项目,放置在资源文件夹中的任何东西都会在您的类路径中结束。 src/test/resources中的任何内容都将在您的测试类路径中结束。