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

带星号的cucumber步骤定义

谢旭
2023-03-14

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

  1. 当以*某些步骤的形式编写新步骤时,并使用Alt-

有什么变通方法可以使用吗?


共有1个答案

章昆琦
2023-03-14

我认为只需几个编码步骤就可以实现这一点。

Feature: Generic annotation

  Scenario: Testing annotations
    * having asterix
    * use custom generic annotation
  1. 添加自定义注释到您的源
package click.webelement.cucumber;

import io.cucumber.java.StepDefinitionAnnotation;
import io.cucumber.java.StepDefinitionAnnotations;
import org.apiguardian.api.API;
import java.lang.annotation.*;

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
@StepDefinitionAnnotation
@Documented
@Repeatable(MyStep.MySteps.class)
@API(status = API.Status.STABLE)
public @interface MyStep {

    String value();

    @Target(ElementType.METHOD)
    @Retention(RetentionPolicy.RUNTIME)
    @StepDefinitionAnnotations
    @Documented
    @interface MySteps {
        MyStep[] value();
    }
}
package click.webelement.cucumber;

public class StepDef {

    @MyStep("having asterix")
    public void doOne(){
        System.out.println("Running having asterix");
    }

    @MyStep("use custom generic annotation")
    public void doTwo(){
        System.out.println("Running use custom generic annotation");
    }

}

UPD

为了让Idea插件与自定义注释一起工作,您需要将该注释放置到

io。cucumberJAVALANGpackage,其中LANG是所选语言的子包。

要使所有内容都按默认方式工作,请将其放置到

io。cucumberJAVA恩

 类似资料:
  • 我遇到了以下问题。我在Intellij中有四个Cucumber特性文件。我通过IntelliJ插件添加了Cucumber支持。在创建了特性之后,我按如下所示编辑了配置,这样我就可以执行特性文件了。 可悲的是,当我尝试使用步骤定义运行cucumber特性时,我得到的提示是“您可以使用下面的代码片段实现缺少的步骤:”但我已经这样做了。我已经将这些片段复制到步骤定义文件中。当我悬停一个场景时,Intel

  • TL:DR控制台不显示缺少步骤的步骤正则表达式 编辑:添加功能文件

  • 我不能为一个项目用cucumber执行简单的测试。我在Intellij13社区,使用cucumber插件。 我在features目录中编写了我的features文件,我还通过插件实现了创建它们的步骤。intellij可以识别功能文件中的我的步骤,它可以导航并转到步骤实现。当我尝试运行我的场景时,if无法声明“未定义的步骤”。任何帮助都将不胜感激。 以下是我如何组织我的项目:

  • 我今天将我的serenity和cucumber测试升级到2.6.0 en cucumber 6版本。只需要更改大量程序包,并且功能文件的步骤不再链接到步骤定义。如果我的cucumberrunner的设置 但是,如果我在功能文件中查看intellij,您将无法再单击步骤以转到定义。当我运行功能文件时,我会得到以下异常: 我不确定是什么地方出了问题,因为相同的代码适用于以前的版本

  • 自从我升级到最新的社区版IntelliJ 15.0.3以来,每当我使用alt-enter从功能定义文件自动生成步骤定义时,它都会以驼峰大小写而不是带下划线的常规样式创建方法。 例如,它过去是这样生成的 但现在它产生了通常的camelCase惯例: 有没有办法把这个设置改回第一种样式? 谢谢

  • 我要驱动执行的代码是: 因此,在一个实例中(当传入string=“have”时),我希望向我的方法中传入一个值,如objpolicyamendrequest.setcolor(“blue”); 另一个方法(当传递给string=“have not”时)我不想传递任何东西给这个方法。 我想我需要遵循if语句,但不确定Cucumber是否有帮助。 希望我说得有道理。我对编程还是有点陌生!