如何在intelliJ 12中定义黄瓜的步骤定义位置

时间:2012-12-21 16:11:43

标签: grails intellij-idea cucumber geb

feature files中的src/resources/com/featuresstep definitions中的src/main/java/com/step_definitions

我的测试都运行正常,但是即使我要求它创建一个新的,因此,intelliJ拒绝查看步骤defs的位置。这个配置在哪里?

5 个答案:

答案 0 :(得分:11)

我只是用完全相同的问题撕掉我的头发(记录我的背景是Java,Ruby,Cucumber和RubyMine,但我是IntelliJ和Cucumber-JVM的新手。)

在Cucumber-JVM run configuration中,必须指定步骤定义存储在glue字段中的包,如IntelliJ documentation中所述。 IntelliJ - 至少对我来说 - 似乎没有提供默认值。

进一步详细说明,一个非常基本的项目如下:

Example
└───src
    ├───main
    │   └───java
    └───test
        ├───java
        │   └───com
        │       └───bensnape
        │           └───example
        │                   MyStepdefs.java
        └───resources
                example.feature

此处的glue值为com.bensnape.example

更新

今天上午更多地使用IntelliJ后,如果您遵守Cucumber-JVM惯例,似乎 为您提供glue值 - 即功能必须在src/test/resources/<package>同样,这些步骤必须位于src/test/java/<package>

之下

示例项目树:

Example
└───src
    ├───main
    │   └───java
    └───test
        ├───java
        │   └───com
        │       └───bensnape
        │           └───example
        │                   MyStepdefs.java
        │
        └───resources
            └───com
                └───bensnape
                    └───example
                            example.feature

答案 1 :(得分:3)

默认约定是在step definitions下的step_definitions sub-folder中定义features directory。子文件夹的名称并不重要;无论名称是什么,它都会起作用。

我的猜测是IDE会遵循相同的约定,因此如果在feature文件夹下移动了step_definitions文件夹,IntelliJ应该正确执行这些功能。

cucumber command在执行功能之前需要-r个选项来要求文件。此选项可用于使其在非传统位置查找step_definitions。

我猜你在黄瓜的本地配置上可能有-r src/main/java/com/step_definitions从命令行调用时看到这些step_definitions。

运行cucumber --verbose显示命令行在哪里找到步骤定义代码。

答案 2 :(得分:3)

如果您将文件夹标记为(测试)源根目录(右键单击文件夹 - &gt;标记目录为 - &gt;(测试)源根目录),它也可以正常工作。

我的grails项目设置如下:

        test
        ├───cucumber
        │   └───steps
        │   └───support
        │   └───features
        └───unit

单位被标记为测试源根,在将黄瓜标记为一个之后,步骤定义被正确解析。

答案 3 :(得分:3)

您可以通过打开“编辑配置 - &gt;默认值 - &gt; Cucumber Java - &gt; Glue”来全局设置粘贴位置,并添加包名称。

(IntelliJ 12.1.4)

答案 4 :(得分:0)

我在版本12.1.3中遇到了同样的问题。我的文件夹和文件以标准方式列出,如其他答案所述,并将代码标记为测试源无法解析。

然后我更新到12.1.6问题得到解决:)