This is an automated email from the ASF dual-hosted git repository.

zihaoxiang pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git


The following commit(s) were added to refs/heads/dev by this push:
     new 5b5a93375b [Chore] Add IT Case for task using taskGroup with different 
taskGroupPriority (#17680)
5b5a93375b is described below

commit 5b5a93375b721aabf84ce08b949a3faccda75b6c
Author: Wenjun Ruan <[email protected]>
AuthorDate: Sat Nov 22 17:43:23 2025 +0800

    [Chore] Add IT Case for task using taskGroup with different 
taskGroupPriority (#17680)
---
 .../integration/cases/WorkflowStartTestCase.java   | 29 +++++++++++++--------
 ...workflow_with_fake_tasks_using_task_group.yaml} | 30 +++++++++++++++++++---
 2 files changed, 46 insertions(+), 13 deletions(-)

diff --git 
a/dolphinscheduler-master/src/test/java/org/apache/dolphinscheduler/server/master/integration/cases/WorkflowStartTestCase.java
 
b/dolphinscheduler-master/src/test/java/org/apache/dolphinscheduler/server/master/integration/cases/WorkflowStartTestCase.java
index 2508b7d3e1..b61355195e 100644
--- 
a/dolphinscheduler-master/src/test/java/org/apache/dolphinscheduler/server/master/integration/cases/WorkflowStartTestCase.java
+++ 
b/dolphinscheduler-master/src/test/java/org/apache/dolphinscheduler/server/master/integration/cases/WorkflowStartTestCase.java
@@ -125,9 +125,9 @@ public class WorkflowStartTestCase extends 
AbstractMasterIntegrationTestCase {
     }
 
     @Test
-    @DisplayName("Test start a workflow with one fake task(A) using task 
group")
-    public void testStartWorkflow_with_oneSuccessTaskUsingTaskGroup() {
-        final String yaml = 
"/it/start/workflow_with_one_fake_task_using_task_group.yaml";
+    @DisplayName("Test start a workflow with two fake task(A) using task 
group")
+    public void testStartWorkflow_with_successTaskUsingTaskGroup() {
+        final String yaml = 
"/it/start/workflow_with_fake_tasks_using_task_group.yaml";
         final WorkflowTestCaseContext context = 
workflowTestCaseContextFactory.initializeContextFromYaml(yaml);
         final WorkflowDefinition workflow = context.getOneWorkflow();
 
@@ -137,19 +137,28 @@ public class WorkflowStartTestCase extends 
AbstractMasterIntegrationTestCase {
                 .build();
 
         workflowOperator.manualTriggerWorkflow(workflowTriggerDTO);
-        workflowOperator.manualTriggerWorkflow(workflowTriggerDTO);
-        workflowOperator.manualTriggerWorkflow(workflowTriggerDTO);
-        workflowOperator.manualTriggerWorkflow(workflowTriggerDTO);
 
         await()
                 .atMost(Duration.ofMinutes(2))
                 .atLeast(Duration.ofSeconds(20))
                 .untilAsserted(() -> {
+                    final List<TaskInstance> taskInstances = 
repository.queryTaskInstance(workflow);
                     Assertions
-                            .assertThat(repository.queryTaskInstance(workflow))
-                            .hasSize(4)
-                            .allMatch(taskInstance -> 
TaskExecutionStatus.SUCCESS.equals(taskInstance.getState())
-                                    && taskInstance.getTaskGroupId() == 
context.getTaskGroups().get(0).getId());
+                            .assertThat(taskInstances)
+                            .hasSize(2)
+                            .allMatch(taskInstance -> 
TaskExecutionStatus.SUCCESS.equals(taskInstance.getState()) &&
+                                    taskInstance.getTaskGroupId() == 
context.getTaskGroups().get(0).getId());
+
+                    final TaskInstance taskA = taskInstances.stream()
+                            .filter(t -> "A".equals(t.getName()))
+                            .findFirst().get();
+                    final TaskInstance taskB = taskInstances.stream()
+                            .filter(t -> "B".equals(t.getName()))
+                            .findFirst().get();
+                    // TaskA's task group priority is smaller than B
+                    
Assertions.assertThat(taskA.getStartTime()).isAfter(taskB.getStartTime());
+                    
Assertions.assertThat(taskA.getEndTime()).isAfter(taskB.getEndTime());
+
                 });
 
         masterContainer.assertAllResourceReleased();
diff --git 
a/dolphinscheduler-master/src/test/resources/it/start/workflow_with_one_fake_task_using_task_group.yaml
 
b/dolphinscheduler-master/src/test/resources/it/start/workflow_with_fake_tasks_using_task_group.yaml
similarity index 71%
rename from 
dolphinscheduler-master/src/test/resources/it/start/workflow_with_one_fake_task_using_task_group.yaml
rename to 
dolphinscheduler-master/src/test/resources/it/start/workflow_with_fake_tasks_using_task_group.yaml
index e798e334a7..60cfbad488 100644
--- 
a/dolphinscheduler-master/src/test/resources/it/start/workflow_with_one_fake_task_using_task_group.yaml
+++ 
b/dolphinscheduler-master/src/test/resources/it/start/workflow_with_fake_tasks_using_task_group.yaml
@@ -25,11 +25,11 @@ project:
   updateTime: 2021-08-12 00:00:00
 
 workflows:
-  - name: workflow_with_one_fake_task_success
+  - name: workflow_with_fake_tasks_using_task_group_success
     code: 1
     version: 1
     projectCode: 1
-    description: This is a fake workflow with single task
+    description: This is a fake workflow with two fake tasks
     releaseState: ONLINE
     createTime: 2024-08-12 00:00:00
     updateTime: 2021-08-12 00:00:00
@@ -51,6 +51,20 @@ tasks:
     updateTime: 2021-08-12 00:00:00
     taskExecuteType: BATCH
 
+  - name: B
+    code: 2
+    version: 1
+    projectCode: 1
+    userId: 1
+    taskType: LogicFakeTask
+    taskParams: '{"localParams":null,"varPool":[],"shellScript":"sleep 5"}'
+    workerGroup: default
+    taskGroupId: 1
+    taskGroupPriority: 2
+    createTime: 2024-08-12 00:00:00
+    updateTime: 2021-08-12 00:00:00
+    taskExecuteType: BATCH
+
 taskRelations:
   - projectCode: 1
     workflowDefinitionCode: 1
@@ -61,12 +75,22 @@ taskRelations:
     postTaskVersion: 1
     createTime: 2024-08-12 00:00:00
     updateTime: 2024-08-12 00:00:00
+  - projectCode: 1
+    workflowDefinitionCode: 1
+    workflowDefinitionVersion: 1
+    preTaskCode: 0
+    preTaskVersion: 0
+    postTaskCode: 2
+    postTaskVersion: 1
+    createTime: 2024-08-12 00:00:00
+    updateTime: 2024-08-12 00:00:00
+
 
 taskGroups:
   - id: 1
     name: default
     projectCode: 1
-    groupSize: 2
+    groupSize: 1
     useSize: 0
     userId: 1
     status: YES

Reply via email to