Gaz*_*dos 7 java bdd logging jbehave selenium-webdriver
场景是这样的:
我们使用JBehave和Selenium进行系统,集成和端到端测试.我正在检查超过20个值的页面上的计算结果以进行验证.使用Junit断言整个测试将在其中一个值不正确的第一个实例上失败.我想要做的是,如果一个断言失败,那么测试继续执行,这样我就可以整理一次测试运行中不正确的所有值,而不是多次测试运行.
为此,我捕获断言并将未通过验证的任何内容写出到日志文件中.这给我留下了一些问题:
1)在我写出来的断言日志文件失败不包含JBehave的故事或情景,目前正在运行中的异常发生时的名称.
2)JBehave Story或Scenario被列为'通过',我希望它被列为'失败'.
有什么办法,我可以登录的故事和场景出了名的附加日志文件或获得写入JBehave日志文件中的额外的记录?
如何将Story/Scenario标记为失败?
在JBehave配置中,我有:
configuredEmbedder()
.embedderControls()
.doIgnoreFailureInStories(true)
.doIgnoreFailureInView(false)
.doVerboseFailures(true)
.useStoryTimeoutInSecs(appSet.getMaxRunningTime());
Run Code Online (Sandbox Code Playgroud)
和
.useStoryReporterBuilder(
new StoryReporterBuilder()
.withDefaultFormats()
.withViewResources(viewResources)
.withFormats(Format.HTML, Format.CONSOLE)
.withFailureTrace(true)
.withFailureTraceCompression(true)
.withRelativeDirectory("jbehave/" + appSet.getApplication())
Run Code Online (Sandbox Code Playgroud)
pla*_*147 11
是的,您可以创建自己的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);
}
...
}
Run Code Online (Sandbox Code Playgroud)
并注册如下:
.useStoryReporterBuilder(
new StoryReporterBuilder()
.withReporters(new MyStoryReporter())
..
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6802 次 |
| 最近记录: |