在Spring Boot测试中,如何在每次测试之前重置全局指标注册表?

时间:2019-08-22 20:10:50

标签: spring-boot spring-test micrometer spring-micrometer

我有测试,并且想要针对千分尺指标进行断言,但是测试以随机顺序运行,因此我想在每次测试之前重置或清除所有千分尺指标,因此我的断言始终正确。

2 个答案:

答案 0 :(得分:0)

这取决于所使用的仪表注册表。如果您使用的是SimpleMeterRegistry,则可以执行以下操作:

registry.getMeters().forEaach((meter) -> registry.remove(meter))

答案 1 :(得分:0)

您应该尝试模拟仪表注册表,因为它们正在监视并且不应影响您的业务逻辑并用于警报。 如果这没有帮助:

对于仪表,您可以重置值

AtomicInteger myGauge = meterRegistry.gauge("numberGauge", new AtomicInteger(0));
myGauge.set(0);

对于计数器,重新初始化,

counter = meterRegistry.counter(counter.toString());

参考:https://micrometer.io/docs/concepts#_manually_incrementingdecrementing_a_gauge