如何在jbehave中获取当前故事/场景

时间:2015-06-02 12:13:40

标签: java jbehave

我试图在afterScenario中使用' context'来尝试获取当前正在运行的故事/场景。对象:

    Context context = new Context();
    String currentScenario = context.getCurrentScenario();
    System.out.println("currentScen:" + currentScenario);

但currentScenario正在返回' null'。这是为什么以及如何返回当前的运行故事/场景

非常感谢你的帮助

1 个答案:

答案 0 :(得分:0)

我想你问两个不同的问题。我会尝试单独解决它们。

第一个问题是"为什么创建上下文并调用getCurrentScenario()不返回当前正在运行的场景?"。我假设您正在引用 org.jbehave.core.context.Context 类。在这种情况下,您已创建上下文的新实例,该实例没有关于当前运行方案的详细信息。所以有意义的是返回null。某处可能存在具有此类背景的StepMonitor,但您无法从该代码访问它。

第二个是"如何从AfterScenario方法中访问当前场景?"从生命周期方法(场景/故事/故事之前/之后)访问此类数据的常规方法是使用记者。这基本上是一个在故事运行时获取事件的监听器。然后,您可以跟踪故事/场景/步骤是否正在进行,并将其提供给您的生命周期方法。与其提供一个示例,我将向您指出一个相关问题,该问题已经包含了覆盖相同用例的示例。

Jbehave get story name inside @BeforeStory