testcafe,如何等待Spring Boot应用启动

testcafe, how to wait for SpringBoot app to be started

我正在使用 testcafe 测试通过 SpringBoot 提供的应用程序。

在启动测试之前,我已成功使用 appCommand 启动应用程序。但是,该应用程序需要一点时间才能启动(10-30 秒,具体取决于环境和负载)所以我需要使用 appInitDelay=40000.

这是个问题,因为如果应用程序只需要 10 秒就可以启动……20 秒就被浪费了……而恰恰是在开发环境中,让开发人员多等待 20 秒什么也不做生产力的痛苦(失去焦点)。

有没有更好的方法?

我试过 pageRequestTimeout 但它不起作用,因为 tomcat 还没有准备好,甚至在等待页面之前测试就失败了(甚至没有触发 pageRequestTimeout)。我也尝试过 retryTestPages 但它都不起作用,因为 tomcat 在实际 SpringBootApp 准备好之前大约 1s 就准备好了......所以连接发生并且 tomcat return 一个错误...再次导致测试失败。

还有其他想法吗?

为了未来,我最终做到的是:

-对于 CI,使用 appCommand="..." 和 appInitDelay="40000" 启动 TestCafe。它平均每 CI 浪费大约 30 秒...但是,至少(通常)没有人在等待它。

-对于开发者,不要启动应用程序,只希望应用程序是运行(开发者将通过其他方式启动它)。