gpt4 book ai didi

java - 附加日志记录 JBehave

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:14:07 24 4
gpt4 key购买 nike

场景是这样的:

我们使用 JBehave 和 Selenium 进行系统、集成和端到端测试。我正在检查超过 20 个值的页面上的计算结果以进行验证。使用 Junit Assert 整个测试将在其中一个值不正确的第一个实例上失败。我想做的是,如果遇到断言失败,那么测试将继续执行,这样我就可以在一次测试运行而不是多次测试运行中整理所有不正确的值。

为此,我捕获断言并将验证失败的任何内容写入日志文件。这给我留下了几个问题:

1) 我写出断言失败的日志文件不包含异常发生时正在运行的 JBehave 故事或场景的名称。

2) JBehave 故事或场景被列为“通过”,我希望它被列为“失败”。

有什么方法可以将故事和场景的名称记录到附加日志文件中,或者将附加日志记录写入 JBehave 日志文件?

如何将故事/场景标记为失败?

在我的 JBehave 配置中:

configuredEmbedder()
.embedderControls()
.doIgnoreFailureInStories(true)
.doIgnoreFailureInView(false)
.doVerboseFailures(true)
.useStoryTimeoutInSecs(appSet.getMaxRunningTime());

.useStoryReporterBuilder(
new StoryReporterBuilder()
.withDefaultFormats()
.withViewResources(viewResources)
.withFormats(Format.HTML, Format.CONSOLE)
.withFailureTrace(true)
.withFailureTraceCompression(true)
.withRelativeDirectory("jbehave/" + appSet.getApplication())

最佳答案

是的,您可以创建自己的 StoryReporter:

 public class MyStoryReporter implements org.jbehave.core.reporters.StoryReporter{
private Log log = ...

@Override
public void successful(String step) {
log.info(">>successStep:" + step);
}

@Override
public void failed(String step, Throwable cause) {
log.error(">>error:" + step + ", reason:" + cause);
}

...
}

然后像这样注册:

.useStoryReporterBuilder(
new StoryReporterBuilder()
.withReporters(new MyStoryReporter())
..

关于java - 附加日志记录 JBehave,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11134963/

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