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

如何在没有运行测试的情况下获取所有标签和cucumber场景

云捷
2023-03-14

我想以某种方式获得我在项目中使用的所有标签的列表,并获得我在项目中没有运行测试的cucumber场景的所有名称。有人能帮助我怎么做吗?

共有3个答案

羊舌航
2023-03-14

启动bash shell并转到文件夹。键入:

grep -nri "Scenario:\|Scenario Outline:" .

去做所有的测试。并且:

grep -nri "@" .

获取所有标记名

(在这两种情况下,请注意命令行末尾的点)

顾鸣
2023-03-14

据我所知,cucumber不会让你在没有执行测试的情况下获得所有标签和场景名称的列表。

您可能需要使用一些脚本语言,如VB脚本,搜索@在文件中的位置并获取标签名称并在文件下逐个保存。同样,在场景、大纲之后,获取整行文本并逐个保存在文件中,并对目录下的所有文件重复相同的操作。

杜思远
2023-03-14

正如@mpkorstanje所建议的,您可以为此创建一个自定义插件。

public class DryRunPlugin implements EventListener {

    @Override
    public void setEventPublisher(EventPublisher publisher) {
        publisher.registerHandlerFor(TestCaseStarted.class, this::handleCaseStarted);
    }

    private void handleCaseStarted(TestCaseStarted event) {
        System.out.println(event.getTestCase().getUri());
        System.out.println(event.getTestCase().getName());
        System.out.println(event.getTestCase().getScenarioDesignation());
        event.getTestCase().getTags().stream().forEach(t -> 
        System.out.println(t.getName()));
    }

}
@CucumberOptions(glue = "stepdef", plugin = {
        "formatter.DryRunPlugin" }, features = "src/test/resources/feature/", dryRun = true)

您将得到如下输出。

file:src/test/resources/feature/scenarios1.feature
Scenario 1
src/test/resources/feature/scenarios1.feature:5 # Scenario 1
@Feature
@ScenarioOne

示例特征文件。

@Feature
Feature: Scenario and Scenario Outline Combination

  @ScenarioOne
  Scenario: Scenario 1
    And this is "FIRST" step
    And this is "SECOND" step
 类似资料:
  • 我正在尝试将Cucumber集成到现有的Spring Boot项目中 当前项目是单个Maven模块 单元测试(不含Spring上下文)和集成测试(含Spring上下文)组合在同一个测试文件夹中。 我想做的是能够调整我的单元测试和集成测试。 但是一旦我添加了依赖项(为了能够在规范旁边运行Spring上下文),它就要求文件夹中的所有测试都用注释。 下面是我的测试套件,配置为获取测试规范。 是否可以将两

  • 我想查看项目中的所有类,当我找到一个从“City”派生的类时,我想创建一个该类型的新对象并将其添加到列表中。这允许我添加功能,而无需更新列表。最重要的是,我想在不使用任何库的情况下完成它。我已经找到了类似的主题,但他们使用了org。反思。我希望避免以下情况:

  • 我正在使用Cucumber for BDD、JUnit和Selenium构建一个自动化框架,我们在云中有一个testrail实例用于测试管理,我实现了testrail API以从那里获取所有测试用例,问题是我无法运行这些步骤获取测试用例,因为总是验证第一个功能文件是否存在。 我尝试过结果总是一样的: 在[classpath:features] 0场景0步骤0m0.019s中找不到功能 这是启动该过

  • 文档说这个库运行在GPU上。如果我功能强大的笔记本电脑没有GPU,我还能运行Deeplearning4J吗?

  • 在我的cucumber jvm项目中,我希望在不使用场景大纲的情况下,使用相同的数据集执行场景10次(数据在excel中提供)。 有人能指导我如何做到这一点吗?

  • 在所有测试之前,需要将数据插入数据库 完成所有测试后,需要从数据库中删除所有数据 在TestNG中,可以使用@BeforeSuite和@AfterSuite来完成这些工作 在JUnit5中如何做这些事情? 在JUnit5中,@BeforeAll注释标记了一个方法,该方法在类中的所有测试之前运行 @AfterAll注释标记要在类中的所有测试之后运行的方法。 我在stackoverflow上找到了以下