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