我们有两个相当大的自动化项目,都使用BDD。一个用于桌面应用程序的Lettuce,另一个用于使用JBehave的网站(我们刚刚开始使用web项目)。
我们尝试使用Thucydides报告我们的JBehave项目,并开始使用它进行测试。但是,我们遇到了Allure,它看起来好多了,让我们使用标准的JBehave框架,而不依赖于某个人的代码,这些代码有自己未知的问题。幸运的是,我们很早就找到了Allure。
2个问题:
1)我们花了2天时间尝试让Allure与JBehave合作,但GitHub上唯一的例子并不能很好地运行(所有场景都是一起报告的,不会因个别故事或场景而分解)。此外,JBehave没有@AfterStep装饰器,我们需要在每一步之后保存屏幕截图,无论成功与否。修昔底德因其所有缺点都照顾到了这一点。 Allure有类似的东西吗?如果没有,那么至少是否有一个工作示例,说明如何从JBehave运行时正确报告故事和方案?
2)我还没有尝试过,但看起来没有适用于Lettuce(Python)的适配器。有人可以推荐一种方法来生产Lettuce的Allure报告吗?
非常感谢!!
答案 0 :(得分:1)
Allure还不支持 JBehave 和 Lettuce 。但是你可以自己实现这样的适配器。
首先,您需要阅读文档中的以下部分https://github.com/allure-framework/allure-core/wiki#development。然后,如果您准备好贡献,您应该按照以下说明操作:
我们已经有了Java适配器。因此,您只需将allure-java-adaptor-api
模块添加为依赖项,然后实现 JBehave 侦听器。
有相同的。你可以使用allure-python绑定,你只需要实现 Lettuce 处理程序。 Python团队将绑定(又名allure-python-adaptor-api
)移到单独的模块,您可以通过https://github.com/allure-framework/allure-python/issues/63
所以,如果您有任何问题/建议,您也可以使用我们的gitter聊天室(https://gitter.im/allure-framework/allure-core)或我们的邮件列表(allure@yandex-team.ru)
希望它有所帮助。
答案 1 :(得分:0)
要实现JBehave和Allure之间的集成,您可以创建自己的org.jbehave.core.reporters.StoryReporter
实现。通过此界面中的方法,您可以触发与JBehave抽象相对应的Allure事件。在我们的实施中,我们从例如TestSuite*Event
开始来自例如StoryReporter#beforeStory()
的{{1}}和TestCase*Event
。
需要注意的是,对于某些JBehave事件,您必须触发多个Allure事件。例如,对于失败的jbehave步骤,我们会触发以下诱惑事件:
StoryReporter#afterScenario()
当然,创建的记者需要注册才能在JBehave的报告中使用。
这会产生全面的倾城报告。
答案 2 :(得分:0)
至少对于 JBehave 而言,从那时起支持 was added