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 秒...但是,至少(通常)没有人在等待它。
-对于开发者,不要启动应用程序,只希望应用程序是运行(开发者将通过其他方式启动它)。
我正在使用 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 秒...但是,至少(通常)没有人在等待它。
-对于开发者,不要启动应用程序,只希望应用程序是运行(开发者将通过其他方式启动它)。