tkobayas commented on issue #6841: URL: https://github.com/apache/incubator-kie-drools/issues/6841#issuecomment-5089374156
# Slow Test Methods — Job 0 (ubuntu-latest / Java-17 / Maven-3.9.11) - **Source**: `surefire-reports_ubuntu-latest_java17` artifact - **Collected**: 2026-07-27 (Run ID 81943624804) - **Total test methods**: 33,241 - **Methods ≥ 5 s**: 115 - **Methods 3–5 s**: 93 --- ## Methods ≥ 5 s by Category ### 🏗️ Maven-internal Build (`maven-build`) Tests that spawn a child Maven process internally (invoker tests, codestart tests, kie-maven-plugin ITs). | Time (s) | Class | Method | |----------|-------|--------| | 23.526 | `org.kie.kogito.quarkus.dmn.KogitoDMNCodeCodestartIT` | `testBuild` | | 22.277 | `maven.invoker.it.drools-test-coverage-jars-with-invoker` | `drools-test-coverage-jars-with-invoker` | | 21.682 | `maven.invoker.it.drools-test-coverage-jars-with-invoker` | `drools-test-coverage-jars-with-invoker` | | 21.058 | `maven.invoker.it.integration-tests-kogito-plugin-it` | `integration-tests-kogito-plugin-it` | | 18.590 | `maven.invoker.it.cloudevents-spring-boot-addon-it-invoked` | `cloudevents-spring-boot-addon-it-invoked` | | 10.615 | `org.kie.maven.plugin.it.kie-maven-plugin-test-kjar-7-exec-model` | `kie-maven-plugin-test-kjar-7-exec-model` | | 8.953 | `maven.invoker.it.kie-ci-test-jars` | `kie-ci-test-jars` | | 8.620 | `org.kie.maven.plugin.it.kie-maven-plugin-test-kjar-7-no-exec-model` | `kie-maven-plugin-test-kjar-7-no-exec-model` | | 8.404 | `org.kie.maven.plugin.it.kie-maven-plugin-test-kjar-12` | `kie-maven-plugin-test-kjar-12` | | 8.250 | `org.kie.maven.plugin.it.kie-maven-plugin-test-kjar-2` | `kie-maven-plugin-test-kjar-2` | | 8.082 | `org.kie.maven.plugin.it.kie-maven-plugin-test-kjar-15-yaml` | `kie-maven-plugin-test-kjar-15-yaml` | | 7.704 | `org.kie.maven.plugin.it.kie-maven-plugin-test-kjar-9-no-exec-model` | `kie-maven-plugin-test-kjar-9-no-exec-model` | | 7.654 | `org.kie.maven.plugin.it.kie-maven-plugin-test-kjar-8-exec-model` | `kie-maven-plugin-test-kjar-8-exec-model` | | 7.543 | `org.kie.maven.plugin.it.kie-maven-plugin-test-kjar-13` | `kie-maven-plugin-test-kjar-13` | | 7.532 | `org.kie.maven.plugin.it.kie-maven-plugin-test-kjar-8-no-exec-model` | `kie-maven-plugin-test-kjar-8-no-exec-model` | | 7.177 | `org.kie.maven.plugin.it.kie-maven-plugin-test-kjar-10-default` | `kie-maven-plugin-test-kjar-10-default` | | 7.107 | `org.kie.maven.plugin.it.kie-maven-plugin-test-kjar-9-exec-model` | `kie-maven-plugin-test-kjar-9-exec-model` | | 6.975 | `org.kie.maven.plugin.it.kie-maven-plugin-test-kjar-11-default` | `kie-maven-plugin-test-kjar-11-default` | | 6.950 | `org.kie.maven.plugin.it.kie-maven-plugin-test-kjar-10-yes-generate` | `kie-maven-plugin-test-kjar-10-yes-generate` | | 6.905 | `org.kie.maven.plugin.it.kie-maven-plugin-test-kjar-11-yes-generate` | `kie-maven-plugin-test-kjar-11-yes-generate` | | 6.772 | `org.kie.maven.plugin.it.kie-maven-plugin-test-kjar-14-ruleunits` | `kie-maven-plugin-test-kjar-14-ruleunits` | | 5.204 | `org.kie.maven.plugin.it.kie-maven-plugin-test-kjar-3` | `kie-maven-plugin-test-kjar-3` | | 5.177 | `org.kie.maven.plugin.it.kie-maven-plugin-test-kjar-setup` | `kie-maven-plugin-test-kjar-setup` | --- ### ⏲️ Timer Sleeps (`timer`) Tests that use real-time waits for BPMN timers, SLA timers, or timer-based rules. | Time (s) | Class | Method | |----------|-------|--------| | 12.300 | `org.kie.kogito.integrationtests.quarkus.MultipleTimerInstancesIT` | `boundaryTimerEvent` | | 12.247 | `org.kie.kogito.integrationtests.quarkus.MultipleTimerInstancesIT` | `timerEvent` | | 10.507 | `org.jbpm.bpmn2.StartEventTest` | `testTimerStartCycle` | | 10.008 | `org.jbpm.bpmn2.IntermediateEventTest` | `testTimerBoundaryEventInterruptingOnTask` | | 10.008 | `org.jbpm.bpmn2.IntermediateEventTest` | `testTimerBoundaryEventDateISO` | | 10.007 | `org.jbpm.bpmn2.IntermediateEventTest` | `testTimerBoundaryEventDuration` | | 10.007 | `org.jbpm.bpmn2.IntermediateEventTest` | `testTimerBoundaryEventCycle1` | | 10.007 | `org.jbpm.bpmn2.IntermediateEventTest` | `testIntermediateCatchEventTimerCycle1` | | 10.006 | `org.jbpm.bpmn2.IntermediateEventTest` | `testIntermediateCatchEventTimerDurationISO` | | 10.006 | `org.jbpm.bpmn2.IntermediateEventTest` | `testIntermediateCatchEventTimerDateISO` | | 10.005 | `org.jbpm.bpmn2.IntermediateEventTest` | `testTimerBoundaryEventInterrupting` | | 10.005 | `org.jbpm.bpmn2.IntermediateEventTest` | `testTimerBoundaryEventDurationISO` | | 7.371 | `org.kie.kogito.codegen.tests.TimerEventIT` | `testStartTimerEventTimeCycle` | | 6.006 | `org.jbpm.bpmn2.StartEventTest` | `testTimerStartCycleISO` | | 5.089 | `org.drools.persistence.timer.integrationtests.TimerAndCalendarTest` | `testTimerWithRemovingRule` | | 5.071 | `org.drools.persistence.timer.integrationtests.TimerAndCalendarTest` | `testTimerWithRemovingRule` | | 5.031 | `org.jbpm.bpmn2.SLAComplianceTest` | `testSLAonUserTaskViolatedExternalTracking` | | 5.030 | `org.jbpm.bpmn2.SLAComplianceTest` | `testSLAonProcessViolatedExternalTracking` | | 5.025 | `org.jbpm.bpmn2.SLAComplianceTest` | `testSLAonProcessViolatedNoTracking` | | 5.007 | `org.jbpm.bpmn2.IntermediateEventTest` | `testIntermediateCatchEventTimerCycleISO` | | 5.007 | `org.jbpm.bpmn2.IntermediateEventTest` | `testIntermediateCatchEventTimerCycleCron` | | 5.006 | `org.jbpm.bpmn2.StartEventTest` | `testTimerCycle` | | 5.006 | `org.jbpm.bpmn2.IntermediateEventTest` | `testIntermediateCatchEventTimerCycle3` | --- ### 🔥 Hot Reload (`hotreload`) Tests that trigger Quarkus/Spring dev-mode hot reload (compile + reload cycle). | Time (s) | Class | Method | |----------|-------|--------| | 19.736 | `org.kie.kogito.quarkus.rules.hotreload.ChangePojoIT` | `test2Changes` | | 18.651 | `io.quarkus.it.kogito.process.HotReloadTest` | `testProcessJsonSchema` | | 16.737 | `org.kie.kogito.quarkus.decisions.hotreload.NewFileHotReloadIT` | `newFileTest` | | 12.748 | `org.drools.quarkus.test.hotreload.HotReloadIT` | `testServletChange` | | 11.868 | `io.quarkus.it.kogito.process.HotReloadTest` | `testRenameProcess` | | 10.527 | `io.quarkus.it.kogito.process.HotReloadTest` | `testJavaFileChange` | | 10.289 | `org.kie.kogito.quarkus.rules.hotreload.ChangePojoIT` | `test1Change` | | 9.859 | `org.kie.kogito.quarkus.decisions.hotreload.SimpleModifyHotReloadIT` | `simpleHotReloadTest` | | 9.691 | `org.kie.kogito.quarkus.decisions.hotreload.SimpleHotReloadIT` | `simpleHotReloadTest` | | 9.230 | `io.quarkus.it.kogito.process.HotReloadTest` | `testUserTaskJsonSchema` | | 8.096 | `org.kie.kogito.quarkus.rules.hotreload.HotReloadIT` | `testServletChange` | | 7.404 | `org.kie.kogito.quarkus.rules.hotreload.newunit.NewUnitIT` | `testServletChange` | | 5.172 | `org.optaplanner.quarkus.rest.OptaPlannerProcessorHotReloadTest` | `solverConfigHotReload` | --- ### 🎯 OptaPlanner Solver / Benchmark (`optaplanner`) Tests that run a real OptaPlanner solver or benchmark. | Time (s) | Class | Method | |----------|-------|--------| | 10.389 | `org.optaplanner.examples.conferencescheduling.app.ConferenceSchedulingSmokeTest` | `runConstraintStreamsMutualCorrectnessTest` | | 10.228 | `org.optaplanner.examples.meetingscheduling.app.MeetingSchedulingSmokeTest` | `runConstraintStreamsMutualCorrectnessTest` | | 10.180 | `org.optaplanner.examples.flightcrewscheduling.app.FlightCrewSchedulingSmokeTest` | `runConstraintStreamsMutualCorrectnessTest` | | 10.034 | `org.optaplanner.examples.examination.app.ExaminationSmokeTest` | `runConstraintStreamsMutualCorrectnessTest` | | 10.023 | `org.optaplanner.examples.machinereassignment.app.MachineReassignmentSmokeTest` | `runConstraintStreamsMutualCorrectnessTest` | | 10.019 | `org.optaplanner.examples.projectjobscheduling.app.ProjectJobSchedulingSmokeTest` | `runConstraintStreamsMutualCorrectnessTest` | | 10.013 | `org.optaplanner.examples.pas.app.PatientAdmissionScheduleSmokeTest` | `runConstraintStreamsMutualCorrectnessTest` | | 10.013 | `org.optaplanner.examples.nurserostering.app.NurseRosteringSmokeTest` | `runConstraintStreamsMutualCorrectnessTest` | | 10.009 | `org.optaplanner.examples.vehiclerouting.app.VehicleRoutingSmokeTest` | `runConstraintStreamsMutualCorrectnessTest` | | 10.006 | `org.optaplanner.examples.curriculumcourse.app.CurriculumCourseSmokeTest` | `runConstraintStreamsMutualCorrectnessTest` | | 10.005 | `org.optaplanner.examples.taskassigning.app.TaskAssigningSmokeTest` | `runConstraintStreamsMutualCorrectnessTest` | | 10.004 | `org.optaplanner.examples.tsp.app.TspSmokeTest` | `runConstraintStreamsMutualCorrectnessTest` | | 10.003 | `org.optaplanner.examples.travelingtournament.app.TravelingTournamentSmokeTest` | `runConstraintStreamsMutualCorrectnessTest` | | 10.003 | `org.optaplanner.examples.nqueens.app.NQueensSmokeTest` | `runConstraintStreamsMutualCorrectnessTest` | | 10.003 | `org.optaplanner.examples.cloudbalancing.app.CloudBalancingSmokeTest` | `runConstraintStreamsMutualCorrectnessTest` | | 10.002 | `org.optaplanner.examples.tennis.app.TennisSmokeTest` | `runConstraintStreamsMutualCorrectnessTest` | | 10.001 | `org.optaplanner.examples.vehiclerouting.app.VehicleRoutingSmokeTest` | `runConstraintStreamsMutualCorrectnessTest` | | 9.760 | `org.optaplanner.quarkus.it.devui.OptaPlannerDevUITest` | `testModelPage` | | 9.547 | `org.optaplanner.examples.app.GeneralBenchmarkConfigTest` | `testBenchmarkApp` | | 9.299 | `org.optaplanner.examples.meetingscheduling.persistence.MeetingSchedulingOpenDataFilesTest` | `readAndWriteSolution` | | 8.502 | `org.optaplanner.examples.nqueens.optional.benchmark.NQueensBenchmarkTest` | `benchmark64queens` | | 8.205 | `org.optaplanner.examples.nqueens.optional.benchmark.NQueensBenchmarkTest` | `benchmark64queensSingleThread` | | 8.096 | `org.optaplanner.benchmark.quarkus.OptaPlannerBenchmarkProcessorBenchmarkConfigTest` | `benchmark` | | 7.272 | `org.optaplanner.examples.conferencescheduling.app.ConferenceSchedulingSmokeTest` | `runSpeedTest` | | 7.213 | `org.optaplanner.quarkus.it.devui.OptaPlannerDevUITest` | `testConstraintsPage` | | 7.111 | `org.optaplanner.examples.curriculumcourse.app.CurriculumCourseSmokeTest` | `runSpeedTest` | | 7.106 | `org.optaplanner.quarkus.it.devui.OptaPlannerDevUITest` | `testSolverConfigPage` | | 5.654 | `org.optaplanner.examples.curriculumcourse.app.CurriculumCourseSmokeTest` | `runSpeedTest` | | 5.581 | `org.optaplanner.examples.conferencescheduling.app.ConferenceSchedulingSmokeTest` | `runSpeedTest` | | 5.495 | `org.optaplanner.quarkus.benchmark.it.OptaPlannerBenchmarkTestResourceTest` | `benchmark` | | 5.235 | `org.optaplanner.examples.tsp.app.TspSmokeTest` | `runSpeedTest` | --- ### 🐳 Testcontainers / External Services (`testcontainers`) Tests that start Docker containers (Infinispan, MongoDB, Kafka, PostgreSQL). | Time (s) | Class | Method | |----------|-------|--------| | 14.706 | `org.drools.reliability.test.smoke.remote.RemoteSmokeTest` | `insertFailoverInsertFire_shouldRecoverFromFailover(PersistenceStrategy, SafepointStrategy)[1]` | | 11.384 | `org.kie.kogito.persistence.kafka.KafkaProcessInstancesIT` | `testBasicFlow` | | 10.786 | `org.kie.kogito.testcontainers.KogitoMongoDBContainerTest` | `shouldGetDockerImageName` | | 5.163 | `org.drools.reliability.test.smoke.remote.RemoteSmokeTest` | `insertFailoverInsertFire_shouldRecoverFromFailover(PersistenceStrategy, SafepointStrategy)[2]` | --- ### 🔷 Alpha Network Compilation (`alpha-network`) Monolithic tests that compile large alpha networks or decision tables in one go. | Time (s) | Class | Method | |----------|-------|--------| | 16.972 | `org.kie.dmn.core.alphanetwork.AlphaNetworkSupportInLargeDecisionTableTest` | `evaluateDecisionTable(boolean)[1]` | | 6.986 | `org.drools.ancompiler.LargeAlphaNetworkTest` | `testLargeCompiledAlphaNetwork(RUN_TYPE)[4]` | | 5.087 | `org.drools.ancompiler.LargeAlphaNetworkTest` | `testLargeCompiledAlphaNetwork(RUN_TYPE)[3]` | --- ### 👤 User Task / Human Task (`usertask`) Tests for jBPM user task lifecycle and deadline handling. | Time (s) | Class | Method | |----------|-------|--------| | 5.290 | `org.jbpm.usertask.jpa.it.WsHumanTaskLifeCycleIT` | `testSuspendUntilOverridingProcessDefinitionValue` | | 5.209 | `org.kie.kogito.codegen.tests.UserTaskIT` | `testUserTaskNotStartedDeadlineWithExpressionReplacementStopTimer` | | 5.208 | `org.kie.kogito.codegen.tests.UserTaskIT` | `testUserTaskNotCompletedDeadlineWithReplacementStopTimer` | | 5.111 | `org.jbpm.usertask.jpa.it.WsHumanTaskLifeCycleIT` | `testPotentialUserCannotResumeSuspendedToInProgressTask` | --- ### 🔁 Transaction Rollback (`transaction`) | Time (s) | Class | Method | |----------|-------|--------| | 7.859 | `org.kie.kogito.integrationtests.springboot.TransactionRollbackMessageTest` | `testNoMessageSentWhenTransactionRollsBack` | | 6.386 | `org.kie.kogito.integrationtests.quarkus.TransactionRollbackMessageIT` | `testNoMessageSentWhenTransactionRollsBack` | --- ### 🔄 Reliability / Failover (`reliability`) | Time (s) | Class | Method | |----------|-------|--------| | 7.183 | `org.drools.reliability.test.smoke.proto.ProtoSmokeTest` | `insertFailoverInsertFire_shouldRecoverFromFailover(PersistenceStrategy, SafepointStrategy)[1]` | | 5.430 | `org.drools.reliability.test.smoke.proto.ProtoSmokeTest` | `insertFailoverInsertFire_shouldRecoverFromFailover(PersistenceStrategy, SafepointStrategy)[2]` | --- ### 🗂️ Other (`other`) | Time (s) | Class | Method | |----------|-------|--------| | 11.291 | `org.drools.core.util.BinaryHeapQueueTest` | `testShuffled` | | 10.051 | `org.drools.mvel.integrationtests.concurrency.MultithreadTest` | `testSlidingTimeWindows(KieBaseTestConfiguration)[2]` | | 10.025 | `org.drools.mvel.integrationtests.concurrency.MultithreadTest` | `testSlidingTimeWindows(KieBaseTestConfiguration)[1]` | | 8.311 | `org.kie.kogito.infinispan.CacheProcessInstancesIT` | `testSignalStorage` | | 7.404 | `org.kie.kogito.quarkus.rules.hotreload.newunit.NewUnitIT` | `testServletChange` | | 7.361 | `org.drools.impact.analysis.example.ExampleUsageTest` | `testExampleUsage` | | 6.466 | `org.kie.dmn.feel.documentation.ADocFEELExamplesTest` | `test` | | 6.416 | `org.kie.kogito.infinispan.CacheProcessInstancesWithLockIT` | `testBasic` | | 5.667 | `NoPMMLTrustyImportTest` | `myRule` | | 5.187 | `org.kie.kogito.infinispan.CacheProcessInstancesIT` | `testFindByIdReadMode` | | 5.070 | `org.kie.kogito.infinispan.CacheProcessInstancesIT` | `testValuesReadMode` | --- ## Key Patterns | Category | # Methods ≥ 5 s | Root cause | |----------|-----------------|------------| | **maven-build** | 23 | Child Maven processes launched inside test methods (invoker, codestart) | | **timer** | 23 | Real-time sleep waiting for BPMN / SLA / Drools timers (most are hard-coded 5–10 s waits) | | **optaplanner** | 31 | Solver execution time; `runConstraintStreamsMutualCorrectnessTest` uniformly ~10 s each | | **hotreload** | 13 | Quarkus dev-mode compile + class reload cycle | | **testcontainers** | 4 | Docker container startup (Infinispan, Kafka, MongoDB) | | **alpha-network** | 3 | Single monolithic large alpha-network compilation | | **usertask** | 4 | Deadline timer waits inside user task tests | | **transaction** | 2 | Spring / Quarkus app startup + REST call | | **reliability** | 2 | Infinispan failover container restart | | **other** | 11 | Concurrency sleeps (`testSlidingTimeWindows`), large data load, etc. | ### Highest-impact reduction opportunities 1. **`IntermediateEventTest` timer methods (×11, ~10 s each)** — Replace `Thread.sleep` / real timer waits with a mocked clock or shorter cycle duration in tests. 2. **`OptaPlanner runConstraintStreamsMutualCorrectnessTest` (×17, ~10 s each)** — These all hit the same 10 s solver termination cap; reducing the termination limit in the test configuration would cut each by ~9 s. 3. **`kie-maven-plugin` invoker tests (×20, 5–11 s each)** — Each spawns a child Maven build; consider reusing the built artifact across tests or parallelising the invoker runs. 4. **Hot reload tests (×13, 8–20 s each)** — Quarkus dev-mode startup dominates; hard to shorten without changing Quarkus internals, but parallelising test classes could hide the cost. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
