2

我正在使用 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 类一起使用吗?

感谢您的任何指点,罗布

4

0 回答 0