[英]Cucumber, Java: Step definition ignore in specific file
我有一個簡單的設置,包括 Cucumber 功能文件和 Java 步驟定義文件。
feature.feature -> StepDefinition.java -> PageObject.java
具體來說:
STEP: Step definition file:
Given I am logged in as .... -> LoginSteps.java
And I am at the workspace -> WorkspaceSteps.java
And I start a new application -> WorkspaceSteps.java
And I accept -> AcceptPage.java - does not work.
- BUT:
And I accept -> AcceptPage.java - DOES work
如上所示,我在這里使用了三步定義文件。 黃瓜可以識別兩個文件中的步驟定義。 但是當它在 AcceptPage.java 文件中定義時,它甚至不會嘗試運行“我接受”步驟。 如果我將它移動到 WorkspaceSteps.java 文件,它運行良好。
沒有關於缺少步驟定義的抱怨。 事實上,沒有錯誤消息,只是測試結果呈橙色。
IntelliJ 運行窗口:
Test results 4s462ms
- Feature: Complete application 4s462ms
- - Scenario: Budget 4s462ms
- - - And I accept 0ms
.feature 文件:
Scenario: Budget
# Login/workspace
Given I am logged in as "12048746711"
And I am on the Workspace screen
And I start a new application
# Accept
And I accept
登錄步驟.java:
@Given("^I am logged in as \"([^\"]*)\"$")
public void iLogInWithId(String id) {
login(createPersonInfo(id));
}
工作區步驟.java
@Given("^And I am on the Workspace screen$")
public void iAmOnScreenWorkspace() {
iAmOnWorkspace();
}
@Given("^I start a new application$")
public void startNewApplication() {
workSpacePage.applyForLoan.click();
}
接受頁面
@Given"^I accept$")
public void iAccept() {
System.out.print("");
acceptPage.iAccept.click();
}
指向 AcceptPage.java 上的 iAccept() 方法的步驟沒有運行。 即使我在 System.out.print() 行上設置斷點並進行調試,它也不會停止甚至到達那里。
但是,如果我將整個 iAccept() 方法移動到 WorkSpace.java 文件中,則一切正常。
有任何想法嗎?
當然,我已經使 IntelliJ 的緩存無效並重新啟動。 我什至嘗試創建一個全新的 Steps 文件,其中包含一個具有新名稱的新步驟。 這是一樣的:黃瓜測試拒絕去任何地方,除了 WorkspaceSteps.java 文件。 這開始看起來完全是愚蠢的、滑稽的和荒謬的。
事實證明,解決方案真的很愚蠢。 出於某種原因,IntelliJ 已經從配置中的 Glue 中刪除了頂級包,而是添加了特定的包。 因此,當使用不屬於這些包的文件時,它會被忽略而沒有進一步解釋。 刪除特定包並進入頂級包解決了問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.