我正在使用Serenity v 1.0.7。我需要在代码中添加钩子,以确保在运行测试后保存代码覆盖率指标。此外,我希望在浏览器关闭之前保存代码覆盖率,或者从已检测的页面导航(使用JSCover)。 我的所有测试类扩展的基本测试套件类都有:
@Managed(uniqueSession = true)
private static WebDriver webDriver;
我想要做的是拥有自己的自定义WebDriver类,它将拦截close(),navigateX(),并在其他调用中捕获异常。然后我会调用我的方法来保持代码覆盖率数据,然后继续执行给定的驱动程序命令。
但是,WebDriver是一个界面,所以我无法扩展它。我可以实现它。当我这样做时,我得到了20个我需要覆盖的方法,但有什么?如何与Serenity管理的驱动程序实例绑定?
我已经查看了WebDriverFacade,但是当我编写自己的CustomWebDriverFacade并执行" drop-in"像这样:
@Managed(uniqueSession = true)
private static CustomWebDriverFacade webDriver;
它报告"没有执行任何测试"并失败。
我已经查看了WebDriverEventListener,但它不允许侦听close(),这对我来说很关键,因为当驱动程序关闭时代码覆盖率会丢失。
我认为核心问题是这个 - > Serenity @Managed可以使用自定义WebDriver类吗?
感谢您的任何指示, 罗布