2012-12-21 79 views
9

定義的步驟定義位置黃瓜,我有我feature filessrc/resources/com/features和我在src/main/java/com/step_definitionsstep definitions如何的IntelliJ 12

我的測試中都運行正常,但的IntelliJ拒絕看到步驟DEFS是,即使我問它創造一個新的。在哪裏配置?

回答

2

默認約定是在features directory下的step_definitions sub-folder中定義step definitions。子文件夾的名稱並不重要;無論名字如何,它都會起作用。

我的猜測是,一個IDE將遵循相同的慣例,因此如果step_definitions文件夾功能,文件夾下移動的IntelliJ應該正確地執行該功能。

cucumber command需要-r選項執行功能之前需要的文件。這個選項可以用來使它在非常規的地方尋找step_definitions。

我猜你可能有你的本地配置的-r src/main/java/com/step_definitions黃瓜從命令行調用時看到這些step_definitions。

運行cucumber --verbose示出了命令行是找到步驟定義碼。

+0

我試圖移動我的腳步定義到特徵/ step_definitions中,但它似乎仍然沒有找到他們:( – theawesome

11

我只是撕裂我的頭髮,用完全相同的問題(備案我的背景是Java,Ruby中,黃瓜和RubyMine的,但我完全新的IntelliJ和黃瓜,JVM)。

在黃瓜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打後,它似乎爲你提供glue值,如果你堅持黃瓜,JVM慣例 - 即功能必須住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 
+0

所以我現在重構我的代碼看起來likethis 這似乎沒有幫助。 我也去運行配置,並輸入com.step_definitions到膠水路徑(黃瓜默認配置)。我沒有在這裏輸入任何東西,因爲不知道該放什麼 大概這隻影響運行,而不是IDE? – theawesome

+0

奇怪的是,它現在拿起我的步驟def文件,當我選擇助手來創建一個step_definition時,它給了我一個我可以放置它的文件列表。但是它仍然堅持(即使在文件中添加了一個新方法之後)步驟def是未定義的。 – theawesome

+0

道歉我一直在度假。你有沒有設法解決你的問題?如果沒有,也許你可以嘗試用更多的信息來更新問題,因爲很難準確地看到你面臨的問題。 –

3

如果選中的文件夾作爲(測試)源根(右鍵點擊文件夾 - >標記目錄 - >(測試)源根),它也能發揮作用。

我的Grails項目設置是這樣的:

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

單位被標記爲測試源根,也標誌着作爲黃瓜一個步驟定義被正確解析後。

+0

這是我的grails項目的答案。謝謝。 –

0

我遇到了與版本12.1.3相同的問題。我的文件夾和文件以其他答案所述的標準方式進行設置,並將代碼標記爲測試源,但未將其解決。

然後我更新到12.1.6的問題是固定的:)

3

您可以通過打開全局設置膠水位置「編輯配置 - >默認設置 - >黃瓜爪哇 - >膠」,並增加了包名。

(12.1.4的IntelliJ)

-2

的IntelliJ支持Cucumber-Java/Groovy一個插件。安裝此插件將啓用從功能文件中提到的步驟到步驟定義的導航。

enter image description here

Alt + Enter鍵創建步驟Defintions

enter image description here

和創建步驟定義後,導航是容易實現

enter image description here

+0

只有在步驟定義和功能具有相同的包裝結構時纔有效 – Chandru