当前位置: 首页 > 知识库问答 >
问题:

Cucumber,Java:忽略特定文件中的步骤定义

鲁炳
2023-03-14

我用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测试拒绝任何地方。这开始看起来完全白痴,土里土气和荒谬。

共有1个答案

卜盛
2023-03-14

结果发现这个解决方案真的很傻。出于某种原因,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代码库中的哪些步骤定义未被使用,以便将其删除?

  • 我们有一些功能文件,这些文件有长时间的测试,可以验证用非英语语言编写的多个内容,