在单元测试期间禁用 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。
现在我通过在单元测试期间使用的应用程序配置中为每个值为 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。