【问题标题】:Cucumber, Java: Step definition ignore in specific fileCucumber,Java:特定文件中的步骤定义忽略
【发布时间】:2020-09-03 02:50:42
【问题描述】:

我使用 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

如上所示,我在这里使用了三步定义文件。 cucumber 可以识别这两个文件中的步骤定义。但是,当它在 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

LoginSteps.java:

@Given("^I am logged in as \"([^\"]*)\"$")
public void iLogInWithId(String id) {
    login(createPersonInfo(id));
}

WorkspaceSteps.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();
}

AcceptPage.java

@Given"^I accept$")
public void iAccept() {
    System.out.print("");
    acceptPage.iAccept.click();
}

AcceptPage.java 上指向 iAccept() 方法的步骤未运行。即使我在 System.out.print() 行上设置断点并进行调试,它也不会停止甚至到达那里。

但如果我将整个 iAccept() 方法移到 WorkSpace.java 文件中,一切正常。

有什么想法吗?

当然,我已经使 IntelliJ 的缓存无效并重新启动。我什至尝试创建一个全新的步骤文件,其中包含一个新名称的新步骤。相同:黄瓜测试拒绝去任何地方,除了 WorkspaceSteps.java 文件。这开始看起来完全愚蠢、荒谬和荒谬。

【问题讨论】:

    标签: java intellij-idea cucumber


    【解决方案1】:

    事实证明,这个解决方案真的很愚蠢。出于某种原因,IntelliJ 已从配置中的 Glue 中删除了顶部包,而是添加了特定的包。因此,当使用不属于这些包的文件时,它只是被忽略而没有进一步解释。删除特定包,进入顶层包即可解决问题。

    【讨论】:

      猜你喜欢
      • 2022-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多