在单元测试期间禁用 Micronaut 中的定期任务执行

Disable periodic task execution in Micronaut during unit test

现在我通过在单元测试期间使用的应用程序配置中为每个值为 10h 的周期性任务设置 initialDelay 来禁用周期性任务。

那么任务方法的注解是这样的:

@Scheduled(fixedDelay = '10s', initialDelay = '${some-domain.periodic-task.initial-delay}')
void periodicTask() {
    // periodic task implementation
}

而在application.yaml单元测试中使用的配置是:

someDomain:
  periodicTask:
    initialDelay: 10h

问题是:有没有更好的方法如何在单元测试期间禁用 Micronaut 中的定期任务执行?

因为我觉得我的解决方案不好 - 这是解决方法。但是我没有找到任何全局设置或任何可在单元测试中用于实现该目标的特定注释等。

谢谢

Is there a better way how to disable periodic task execution in Micronaut during unit test?

这实际上取决于具体情况,但一种选择是用 @Requires(notEnv="test") 标记包含周期性任务的 bean。