Karate RuntimeHook如何触发beforeSuite与afterSuite方法?
问题根因
你实现了RuntimeHook接口但没有将实例注册到Karate执行器中,Karate不会自动扫描加载该接口的实现类,因此钩子方法无法被触发。
修复方案
在Runner执行链中增加.hook()方法注册当前自定义钩子实例即可,修改后的测试方法代码如下:
@Test public void testParallel() { Results results = Runner.path("classpath:feature") // 注册RuntimeHook实例 .hook(new KarateTest()) .parallel(THREAD_COUNT); assertEquals(0, results.getFailCount(), results.getErrorMessages()); }
补充注意项
- 若存在多个自定义钩子,可多次调用
.hook()方法,执行顺序和注册顺序一致 - 你当前的
RuntimeHook接口实现符合Karate 1.0+的规范,无需额外调整方法签名 - 注册后重新运行测试,即可看到两个钩子方法的打印输出
内容的提问来源于stack exchange,提问作者Drunda Nibel
相关产品推荐
相关产品推荐

