JBehave 空上下文

JBehave empty context

Serenity 和 JBehave 用于一个测试套件。 我正在尝试获取 BrowserStack 视频命名的当前故事和场景名称。 正如我在 official documentation 中所读 为此目的使用 ContextView。我从 official repository 得到了下面的代码并稍微修改了一下:

public class MyStory extends SerenityStories {

  private final CrossReference xref = new CrossReference();
  private Context context = new Context();
  private Format contextFormat = new ContextOutput(context);
  private ContextView contextView = new JFrameContextView().sized(640, 120);
  private ContextStepMonitor contextStepMonitor = new ContextStepMonitor(context, contextView, xref.getStepMonitor());

  @Override
  public Configuration configuration() {
      Configuration configuration = super.configuration();
      configuration.useStepMonitor(contextStepMonitor);
      return configuration;
  }

}

执行后,我只看到当前步骤的 JFrame window。 但是 context.getCurrentScenario();context.getCurrentStory(); 总是空的。

我所需要的只是在驱动程序调用之前获取场景名称并在驱动程序功能中设置。我究竟做错了什么?也许还有其他方法可以做到?

P.S。 serenity-jbehave 1.13.0,serenity-core 1.2.3-rc.5

您需要将 ContextStoryReporter 的实例添加到您的配置中:

configuration.storyReporterBuilder().withReporters(new ContextStoryReporter(context));