1

我们有 2 个相当大的自动化项目正在进行,都使用 BDD。一种是在 Lettuce 中用于桌面应用程序,另一种是用于使用 JBehave 的网站(我们刚刚开始使用 Web 项目)。

我们已经尝试使用 Thucydides 为我们的 JBehave 项目进行报告,并开始使用它来实现测试。然而,我们遇到了 Allure,它看起来好多了,让我们可以使用标准的 JBehave 框架,而不需要依赖于我们自己未知问题的某人的代码。幸运的是,我们很早就找到了 Allure。

2个问题:

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

2)我还没有尝试过,但看起来没有生菜(Python)的适配器。有人可以推荐一种从生菜制作引诱报告的方法吗?

非常感谢!!

4

3 回答 3

1

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

第一步,您需要阅读文档中的以下部分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 )

希望能帮助到你。

于 2015-04-24T11:36:35.760 回答
0

要实现 JBehave 和 Allure 之间的集成,您可以创建自己的org.jbehave.core.reporters.StoryReporter. 通过这个接口中的方法,您可以触发与 JBehave 抽象相对应的 Allure 事件。在我们的实现中,我们从 eg 触发TestSuite*Events,从 egStoryReporter#beforeStory()触发TestCase*Events StoryReporter#afterScenario()

需要注意的是,对于某些 JBehave 事件,您必须触发多个 Allure 事件。例如,对于一个失败的 jbehave 步骤,我们会触发以下诱惑事件:

public class AllureStoryReporter implements StoryReporter {

... 

    @Override
    public void notPerformed(final String step) {
        getLifecycle().fire(new StepStartedEvent(step).withTitle(step));
        getLifecycle().fire(new StepCanceledEvent());
        getLifecycle().fire(new StepFinishedEvent());
    }
}

当然,创建的报告器需要注册才能在 JBehave 报告期间使用。

这会产生全面的 Allure 报告。

于 2015-04-28T11:33:12.733 回答
0

至少对于 JBehave,从那时起就添加了支持

于 2021-03-31T16:34:34.630 回答