【问题标题】:How to get handle of Karate Results when running features and scenarios in SEQUENTIAL mode NOT Parallel in Karate在 SEQUENTIAL 模式下运行功能和场景时如何处理空手道结果,而不是在空手道中并行
【发布时间】:2021-02-27 02:26:48
【问题描述】:

我基本上是在尝试按顺序运行我的场景并尝试查找是否有办法在@AfterClass 方法中获取Results 的句柄。

我知道并行运行是可能的,但我们的必要性是在测试报告中对所有执行的测试进行分解,这在像下面这样实现时是不可能的。

public class AllTestRunner {

   @Test
   public void testParallel() {
      Results results = Runner.parallel(1, "classpath:karate/feature");
   }
}

这种方法的问题在于,测试报告显示为仅执行了 1 个测试,这是预期之外的。

有没有办法在像下面这样运行时获得结果?

@RunWith(Karate.class)
@KarateOptions(features = "classpath:karate/feature")
public class AllTestRunner {

   @AfterClass
   public void testParallel() {
       Results results = ...;
   }

}

基本上,尝试获取结果的目的是在场景失败时执行 API 调用,方法是检查 result.isFailed()

同样,并行运行测试会在测试报告中生成,如下所示。


    1 tests 0 failures 0 ignored 7.373s duration 100% successful 
    Tests Standard output 
    Test Duration Result 
    testParallel 7.373s passed

【问题讨论】:

    标签: junit integration-testing karate functional-testing cucumber-junit


    【解决方案1】:

    不,没有。也许你可以探索一下这些钩子,但请注意,API 将在 1.0 中略有变化 - https://stackoverflow.com/a/59080128/143475

    如果您有这样的不寻常需求,您应该考虑为空手道贡献代码。所谓的“顺序”模式是为了方便与 JUnit 连接。并行运行器应该没有问题,我不明白“仅执行1个测试”是什么意思。

    【讨论】:

      猜你喜欢
      • 2023-02-10
      • 1970-01-01
      • 2023-01-26
      • 2022-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多