测试中的 JUnit5 断言计数

JUnit5 assertion counting in tests

有没有办法确定测试中调用的断言的数量?我正在使用 JUnit 5 Platform Launcher 并且可以计算每个测试标识符中的通过、失败,但不能计算断言。这在结果分析和报告中很重要,因为并非每个测试都是相同的 "density," 远非如此。

我可以在每个断言周围提供一个包装器,在测试注释中增加一个计数或存储一个硬编码的总和,但前者引入了一个必须维护的合同,只是为了在 JUnit 5 中进行简单的 hack 或者可以是忽略,后者涉及大量手动计数。赞赏。

import static org.junit.jupiter.api.Assertions.assertEquals;
...
int index = 0;
while (index < testValueCount){
    assertTrue(testValue[index]>0);               // Want to capture testValueCount assertions here, not 1 (or none)
    ++index;
}

不,很遗憾,这是不可能的。

JUnit Platform 和 JUnit Jupiter 均未提供跟踪已执行断言数量的方法。

如果您确实需要这样的功能,您要么需要自己包装断言调用,要么寻找支持调用跟踪的断言框架。