首页 > 解决方案 > 带有并行运行器的 ExecutionHook

问题描述

我正在使用并行运行器来运行 m 个功能文件之一。到目前为止,它有 8 个场景。我想集成第三方报告插件(范围报告)来构建报告。我计划使用 ExecutionHook 接口来尝试实现这一点。以下是我面临的问题,即使在查看文档后也没有发现。

我的问题

  1. 我正在对afterFeature方法创建一个新测试。这给了我 2 个句柄,Feature 和 ExecutionContext。但是,由于测试是并行运行的,因此报告步骤会相互混淆吗?我该如何处理?我可以使用任何开箱即用的方法吗?
  2. 为了解决上述问题,我决定在afterAll被覆盖的方法上构建整个报告,但这里我缺少执行上下文数据,所以我不能使用 context.getRequestBuilder() 来获取 url 和路径。

任何帮助都会很棒。

标签: karate

解决方案


请关注 1.0 版本:https ://github.com/intuit/karate/wiki/1.0-upgrade-guide

原因:

  • 它为您提供了一种在最后构建整个报告的方法,并且该Results对象可以遍历所有ScenarioResult实例
  • ExecutionHook已更改为RuntimeHook,请参见示例
  • 是的,因为测试可以并行运行,所以由你来同步,因为框架必须是高性能的,但是Results建议在最后使用对象而不是使用RuntimeHook

推荐阅读