【发布时间】: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