gpt4 book ai didi

jbehave - 使用 JBehave 获取逐个场景的通过/失败报告

转载 作者:行者123 更新时间:2023-12-02 13:34:30 27 4
gpt4 key购买 nike

我想从 JBehave 生成​​一份报告,其中仅列出每个场景的名称和通过/失败状态。如果根据场景结果给出故事的通过/失败状态(如果所有场景都通过故事通过),则可获得奖励积分。像这样的东西:

PASS:  Story: Build a widget.
PASS: Scenario: Build a normal widget.
PASS: Scenario: Build a custom widget.
FAIL: Story: Test a widget.
PASS: Scenario: Test a normal widget.
FAIL: Scenario: Test a custom widget.

首选文本,但我可以使用其他格式。

这篇文章: Additional logging JBehave展示了如何使用 StoryReporter 捕获各个步骤的通过/失败,但通过界面我看不到如何捕获单个场景的最终状态。

后来在同一篇文章中,评论者提到源代码分发中有几个 View 生成示例。如果有人可以提供更具体的指示来说明哪些示例执行此操作,那也会有所帮助。

最佳答案

下面的 StoryReporter 代码应该可以满足您的要求。它跟踪每个场景以及场景中每个步骤的通过/失败状态。如果任何步骤失败,则场景失败。如果任何场景失败,则该故事将被标记为失败。在故事的结尾,它会记录结果。

public class MyStoryReporter implements org.jbehave.core.reporters.StoryReporter {
private Story runningStory;
private boolean runningStoryStatus;
private String runningScenarioTitle;
private boolean runningScenarioStatus;
private List<ScenarioResult> scenarioList;
private Log log = LogFactory.getLog(this.getClass());

private class ScenarioResult {
public String title;
public boolean result;

public ScenarioResult(String title, boolean result) {
this.title = title;
this.result = result;
}
}

public void beforeStory(Story story, boolean b) {
runningStory = story;
runningStoryStatus = true;
scenarioList = new ArrayList<>();
}

public void afterStory(boolean b) {
String storyPrefix = runningStoryStatus ? "PASS: STORY: " : "FAIL: STORY: ";
log.info(storyPrefix + runningStory.getName() + ".");

String scenarioPrefix;
for (ScenarioResult scenario : scenarioList) {
scenarioPrefix = scenario.result ? " PASS: SCENARIO: " : " FAIL: SCENARIO: ";
log.info(scenarioPrefix + scenario.title + ".");
}
}

public void beforeScenario(String s) {
runningScenarioTitle = s;
runningScenarioStatus = true;
}

public void afterScenario() {
scenarioList.add(new ScenarioResult(runningScenarioTitle, runningScenarioStatus));
runningStoryStatus = runningStoryStatus && runningScenarioStatus;
}

public void failed(String s, Throwable throwable) {
runningScenarioStatus = false;
}

关于jbehave - 使用 JBehave 获取逐个场景的通过/失败报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25212694/

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