我用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文件中定义了“and I Accept”步骤时,它甚至不尝试运行该步骤。如果我将它移动到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));
}
@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();
}
当然,我已经使Intellij的缓存失效并重新启动。我甚至尝试创建一个全新的步骤文件,其中包含一个具有新名称的新步骤。这是一样的:除了workspacesteps.java文件外,cucumber测试拒绝任何地方。这开始看起来完全白痴,土里土气和荒谬。
结果发现这个解决方案真的很傻。出于某种原因,IntelliJ从配置中的胶水中删除了顶部的包,而是添加了特定的包。因此,当一个不属于这些包的文件被使用时,它只是被忽略,而没有进一步的解释。删除特定的包并进入顶部包解决了这个问题。
我有多个项目,我想为所有项目实施cucumber js E2E测试。我有一个步骤定义文件,可用于测试所有这些项目,但我希望有多个功能文件,每个项目文件夹包含特定于项目的功能文件。这是布局: 步骤定义:项目/E2E/step_definitions/chat.js 功能文件:项目/project_1/功能/feature_1.js 现在,由于步骤定义在features文件夹之外,我得到了未实现的步骤
TL:DR控制台不显示缺少步骤的步骤正则表达式 编辑:添加功能文件
我不能为一个项目用cucumber执行简单的测试。我在Intellij13社区,使用cucumber插件。 我在features目录中编写了我的features文件,我还通过插件实现了创建它们的步骤。intellij可以识别功能文件中的我的步骤,它可以导航并转到步骤实现。当我尝试运行我的场景时,if无法声明“未定义的步骤”。任何帮助都将不胜感激。 以下是我如何组织我的项目:
我已经写了我的firsy cucumber特征文件。当我将功能文件作为Cucumber功能运行时,会出现以下错误 “警告:cucumber-jvm的--format选项不推荐使用。请改用--plugin。”-我在我的@CucumberOptions of runner类中使用了“plugin”,但仍然得到相同的错误 场景:验证登录页面#c:/selenium/regressiontest/modu
我们在整个测试套件中有200多个特性和2000多个场景。它工作得很好,但许多步骤定义没有使用,我们想删除它们。 目前,我们很难手动尝试删除步骤定义代码,看看这样做是否破坏了什么。是否有一个工具或实用程序可以识别Java-Cucumber代码库中的哪些步骤定义未被使用,以便将其删除?
我们有一些功能文件,这些文件有长时间的测试,可以验证用非英语语言编写的多个内容,