gpt4 book ai didi

java - 在 Cucumber 胶水选项包中使用多个类

转载 作者:行者123 更新时间:2023-11-28 21:37:10 24 4
gpt4 key购买 nike

我在运行 Cucumber 测试时使用胶水选项时遇到问题。这是我的测试运行器类:

@RunWith(Cucumber.class)
@CucumberOptions(features="src/test/java/com/xcase/tests/cucumber/features/api/APITest.feature",glue={"com.xcase.tests.cucumber.stepdefinitions.api"})
public class APIRunnerTest {

}

我按照这些行运行测试:

mvn clean test -Dtest=APIRunnerTest

如果我将所有步骤定义放在胶水包 com.xcase.tests.cucumber.stepdefinitions.api.FirstSteps 的单个类中,那么我的测试运行良好。

如果我向 com.xcase.tests.cucumber.stepdefinitions.api 包中添加一个空类,比如 com.xcase.tests.cucumber.stepdefinitions.api.SecondSteps,那么我的测试运行良好。但是,如果我修改 SecondSteps 以扩展 FirstSteps,那么我的测试将完全停止运行!这是为什么?

这对我来说是个问题,因为我想将一些共享的步骤定义和字段放在一个基本步骤定义类中,然后有多个扩展该基类的类。我应该怎么做?

最佳答案

However, if I modify SecondSteps to extend FirstSteps, then my tests stop running completely! Why is that?

您现在有两个声明步骤的类。因为 SecondSteps 扩展 FirstStepsSecondSteps 将声明与 FirstSteps 完全相同的步骤。所以 Cucumber 无法决定应该运行哪些步骤。

This is a problem for me because I'd like to put some shared step definitions and fields in a base step definition class and then have multiple classes that extend the base class. How should I do this?

如果你想在步骤之间共享信息,你应该使用 a world object .该文档使用 ruby​​,但在添加 cucumber-pico 作为依赖项后,它在 Java 中的工作方式相同。对于过时的教程检查 Sharing state between steps in Cucumber-JVM using PicoContainer

关于java - 在 Cucumber 胶水选项包中使用多个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57131198/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com