定義的步驟定義位置黃瓜,我有我feature files
在src/resources/com/features
和我在src/main/java/com/step_definitions
step definitions
如何的IntelliJ 12
我的測試中都運行正常,但的IntelliJ拒絕看到步驟DEFS是,即使我問它創造一個新的。在哪裏配置?
定義的步驟定義位置黃瓜,我有我feature files
在src/resources/com/features
和我在src/main/java/com/step_definitions
step definitions
如何的IntelliJ 12
我的測試中都運行正常,但的IntelliJ拒絕看到步驟DEFS是,即使我問它創造一個新的。在哪裏配置?
默認約定是在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
示出了命令行是找到步驟定義碼。
我只是撕裂我的頭髮,用完全相同的問題(備案我的背景是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
所以我現在重構我的代碼看起來likethis 這似乎沒有幫助。 我也去運行配置,並輸入com.step_definitions到膠水路徑(黃瓜默認配置)。我沒有在這裏輸入任何東西,因爲不知道該放什麼 大概這隻影響運行,而不是IDE? – theawesome
奇怪的是,它現在拿起我的步驟def文件,當我選擇助手來創建一個step_definition時,它給了我一個我可以放置它的文件列表。但是它仍然堅持(即使在文件中添加了一個新方法之後)步驟def是未定義的。 – theawesome
道歉我一直在度假。你有沒有設法解決你的問題?如果沒有,也許你可以嘗試用更多的信息來更新問題,因爲很難準確地看到你面臨的問題。 –
如果選中的文件夾作爲(測試)源根(右鍵點擊文件夾 - >標記目錄 - >(測試)源根),它也能發揮作用。
我的Grails項目設置是這樣的:
test
├───cucumber
│ └───steps
│ └───support
│ └───features
└───unit
單位被標記爲測試源根,也標誌着作爲黃瓜一個步驟定義被正確解析後。
這是我的grails項目的答案。謝謝。 –
我遇到了與版本12.1.3相同的問題。我的文件夾和文件以其他答案所述的標準方式進行設置,並將代碼標記爲測試源,但未將其解決。
然後我更新到12.1.6的問題是固定的:)
您可以通過打開全局設置膠水位置「編輯配置 - >默認設置 - >黃瓜爪哇 - >膠」,並增加了包名。
(12.1.4的IntelliJ)
的IntelliJ支持Cucumber-Java/Groovy一個插件。安裝此插件將啓用從功能文件中提到的步驟到步驟定義的導航。
Alt + Enter鍵創建步驟Defintions
和創建步驟定義後,導航是容易實現
只有在步驟定義和功能具有相同的包裝結構時纔有效 – Chandru
我試圖移動我的腳步定義到特徵/ step_definitions中,但它似乎仍然沒有找到他們:( – theawesome