升级到 1.0.0 后,空手道摘要报告未显示所有测试功能

jje*_*eun 3 karate

我最近从 0.9.6 升级到 1.0.0 版本,并注意到生成的karate-summary.html文件与 0.9.6 不同,它不会显示 JUnit 5 Runner 中所有测试的功能文件。

它显示的只是最后测试的功能文件。

下面的屏幕截图来自提供的SampleTest.java示例代码(为简单起见,不包括其他测试)。

package karate;

import com.intuit.karate.junit5.Karate;

class SampleTest {

    @Karate.Test
    Karate testSample() {
        return Karate.run("sample").relativeTo(getClass());
    }
    
    @Karate.Test
    Karate testTags() {
        return Karate.run("tags").relativeTo(getClass());
    }

}
Run Code Online (Sandbox Code Playgroud)

这是从 0.9.6 版本开始的。 版本0.9.6

这是1.0.0版本的 版本1.0.0

但是,在 1.0.0 中运行以下测试时,所有功能都正确显示在摘要中。

@Karate.Test
Karate testAll() {
    return Karate.run().relativeTo(getClass());
}
Run Code Online (Sandbox Code Playgroud)

有人愿意确认他们是否得到了类似的结果吗?我们将非常感激。

版本 1.0.0 testAll()

Pet*_*mas 5

它显示的只是最后测试的功能文件。

这是因为每次运行 JUnit方法时,都会默认备份 reports 目录。查找其他名为的目录target/karate-reports-<timestamp>,您可能会在那里找到您的报告。因此,可能发生的情况是您有多个 JUnit 测试都在运行,因此您会看到此行为。您可以通过调用.backupReportDir(false)构建器上的方法来覆盖此行为。但我认为它可能仍然不起作用 - 因为 JUnit 运行程序已经发生了一些变化。它被设计为当您处于本地/开发模式时一次运行一种方法。

所以 JUnit 运行器只是一种方便。您应该使用Runner类/构建器进行 CI 执行,并且当您想要运行多个测试并在一份报告中查看它们时:https ://stackoverflow.com/a/65578167/143475

这是一个例子:ExamplesTest.java

但如果 JUnit 运行器中出现错误(很有可能),请按照流程帮助项目开发人员复制并修复问题以尽快发布。

编辑 - 对于那些寻找有关如何“合并”报告的提示的人,请参阅此问题的答案:How to rerun failed features in karate?