使用JBehave和Lettuce的诱惑

时间:2015-04-24 06:42:37

标签: jbehave lettuce allure

我们有两个相当大的自动化项目,都使用BDD。一个用于桌面应用程序的Lettuce,另一个用于使用JBehave的网站(我们刚刚开始使用web项目)。

我们尝试使用Thucydides报告我们的JBehave项目,并开始使用它进行测试。但是,我们遇到了Allure,它看起来好多了,让我们使用标准的JBehave框架,而不依赖于某个人的代码,这些代码有自己未知的问题。幸运的是,我们很早就找到了Allure。

2个问题:

1)我们花了2天时间尝试让Allure与JBehave合作,但GitHub上唯一的例子并不能很好地运行(所有场景都是一起报告的,不会因个别故事或场景而分解)。此外,JBehave没有@AfterStep装饰器,我们需要在每一步之后保存屏幕截图,无论成功与否。修昔底德因其所有缺点都照顾到了这一点。 Allure有类似的东西吗?如果没有,那么至少是否有一个工作示例,说明如何从JBehave运行时正确报告故事和方案?

2)我还没有尝试过,但看起来没有适用于Lettuce(Python)的适配器。有人可以推荐一种方法来生产Lettuce的Allure报告吗?

非常感谢!!

3 个答案:

答案 0 :(得分:1)

Allure还不支持 JBehave Lettuce 。但是你可以自己实现这样的适配器。

首先,您需要阅读文档中的以下部分https://github.com/allure-framework/allure-core/wiki#development。然后,如果您准备好贡献,您应该按照以下说明操作:

JBehave

我们已经有了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