feat_测试跟踪_评审添加关注人 --story=1003528 --user=王孝刚 2.测试计划、用例评审添加关注人 https://www.tapd.cn/55049933/s/1056133
This commit is contained in:
parent
8c65bae8a2
commit
993dc09ccb
|
@ -43,5 +43,7 @@ public class TestPlan implements Serializable {
|
||||||
|
|
||||||
private Boolean automaticStatusUpdate;
|
private Boolean automaticStatusUpdate;
|
||||||
|
|
||||||
|
private String followPeople;
|
||||||
|
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
}
|
}
|
|
@ -1353,6 +1353,76 @@ public class TestPlanExample {
|
||||||
addCriterion("automatic_status_update not between", value1, value2, "automaticStatusUpdate");
|
addCriterion("automatic_status_update not between", value1, value2, "automaticStatusUpdate");
|
||||||
return (Criteria) this;
|
return (Criteria) this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Criteria andFollowPeopleIsNull() {
|
||||||
|
addCriterion("follow_people is null");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andFollowPeopleIsNotNull() {
|
||||||
|
addCriterion("follow_people is not null");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andFollowPeopleEqualTo(String value) {
|
||||||
|
addCriterion("follow_people =", value, "followPeople");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andFollowPeopleNotEqualTo(String value) {
|
||||||
|
addCriterion("follow_people <>", value, "followPeople");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andFollowPeopleGreaterThan(String value) {
|
||||||
|
addCriterion("follow_people >", value, "followPeople");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andFollowPeopleGreaterThanOrEqualTo(String value) {
|
||||||
|
addCriterion("follow_people >=", value, "followPeople");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andFollowPeopleLessThan(String value) {
|
||||||
|
addCriterion("follow_people <", value, "followPeople");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andFollowPeopleLessThanOrEqualTo(String value) {
|
||||||
|
addCriterion("follow_people <=", value, "followPeople");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andFollowPeopleLike(String value) {
|
||||||
|
addCriterion("follow_people like", value, "followPeople");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andFollowPeopleNotLike(String value) {
|
||||||
|
addCriterion("follow_people not like", value, "followPeople");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andFollowPeopleIn(List<String> values) {
|
||||||
|
addCriterion("follow_people in", values, "followPeople");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andFollowPeopleNotIn(List<String> values) {
|
||||||
|
addCriterion("follow_people not in", values, "followPeople");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andFollowPeopleBetween(String value1, String value2) {
|
||||||
|
addCriterion("follow_people between", value1, value2, "followPeople");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andFollowPeopleNotBetween(String value1, String value2) {
|
||||||
|
addCriterion("follow_people not between", value1, value2, "followPeople");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class Criteria extends GeneratedCriteria {
|
public static class Criteria extends GeneratedCriteria {
|
||||||
|
|
|
@ -21,6 +21,7 @@
|
||||||
<result column="project_id" jdbcType="VARCHAR" property="projectId" />
|
<result column="project_id" jdbcType="VARCHAR" property="projectId" />
|
||||||
<result column="execution_times" jdbcType="INTEGER" property="executionTimes" />
|
<result column="execution_times" jdbcType="INTEGER" property="executionTimes" />
|
||||||
<result column="automatic_status_update" jdbcType="BIT" property="automaticStatusUpdate" />
|
<result column="automatic_status_update" jdbcType="BIT" property="automaticStatusUpdate" />
|
||||||
|
<result column="follow_people" jdbcType="VARCHAR" property="followPeople" />
|
||||||
</resultMap>
|
</resultMap>
|
||||||
<resultMap extends="BaseResultMap" id="ResultMapWithBLOBs" type="io.metersphere.base.domain.TestPlanWithBLOBs">
|
<resultMap extends="BaseResultMap" id="ResultMapWithBLOBs" type="io.metersphere.base.domain.TestPlanWithBLOBs">
|
||||||
<result column="tags" jdbcType="LONGVARCHAR" property="tags" />
|
<result column="tags" jdbcType="LONGVARCHAR" property="tags" />
|
||||||
|
@ -88,7 +89,8 @@
|
||||||
<sql id="Base_Column_List">
|
<sql id="Base_Column_List">
|
||||||
id, workspace_id, report_id, `name`, description, `status`, stage, test_case_match_rule,
|
id, workspace_id, report_id, `name`, description, `status`, stage, test_case_match_rule,
|
||||||
executor_match_rule, create_time, update_time, actual_end_time, planned_start_time,
|
executor_match_rule, create_time, update_time, actual_end_time, planned_start_time,
|
||||||
planned_end_time, actual_start_time, creator, project_id, execution_times, automatic_status_update
|
planned_end_time, actual_start_time, creator, project_id, execution_times, automatic_status_update,
|
||||||
|
follow_people
|
||||||
</sql>
|
</sql>
|
||||||
<sql id="Blob_Column_List">
|
<sql id="Blob_Column_List">
|
||||||
tags, report_summary, report_config
|
tags, report_summary, report_config
|
||||||
|
@ -148,16 +150,16 @@
|
||||||
create_time, update_time, actual_end_time,
|
create_time, update_time, actual_end_time,
|
||||||
planned_start_time, planned_end_time, actual_start_time,
|
planned_start_time, planned_end_time, actual_start_time,
|
||||||
creator, project_id, execution_times,
|
creator, project_id, execution_times,
|
||||||
automatic_status_update, tags, report_summary,
|
automatic_status_update, follow_people, tags,
|
||||||
report_config)
|
report_summary, report_config)
|
||||||
values (#{id,jdbcType=VARCHAR}, #{workspaceId,jdbcType=VARCHAR}, #{reportId,jdbcType=VARCHAR},
|
values (#{id,jdbcType=VARCHAR}, #{workspaceId,jdbcType=VARCHAR}, #{reportId,jdbcType=VARCHAR},
|
||||||
#{name,jdbcType=VARCHAR}, #{description,jdbcType=VARCHAR}, #{status,jdbcType=VARCHAR},
|
#{name,jdbcType=VARCHAR}, #{description,jdbcType=VARCHAR}, #{status,jdbcType=VARCHAR},
|
||||||
#{stage,jdbcType=VARCHAR}, #{testCaseMatchRule,jdbcType=VARCHAR}, #{executorMatchRule,jdbcType=VARCHAR},
|
#{stage,jdbcType=VARCHAR}, #{testCaseMatchRule,jdbcType=VARCHAR}, #{executorMatchRule,jdbcType=VARCHAR},
|
||||||
#{createTime,jdbcType=BIGINT}, #{updateTime,jdbcType=BIGINT}, #{actualEndTime,jdbcType=BIGINT},
|
#{createTime,jdbcType=BIGINT}, #{updateTime,jdbcType=BIGINT}, #{actualEndTime,jdbcType=BIGINT},
|
||||||
#{plannedStartTime,jdbcType=BIGINT}, #{plannedEndTime,jdbcType=BIGINT}, #{actualStartTime,jdbcType=BIGINT},
|
#{plannedStartTime,jdbcType=BIGINT}, #{plannedEndTime,jdbcType=BIGINT}, #{actualStartTime,jdbcType=BIGINT},
|
||||||
#{creator,jdbcType=VARCHAR}, #{projectId,jdbcType=VARCHAR}, #{executionTimes,jdbcType=INTEGER},
|
#{creator,jdbcType=VARCHAR}, #{projectId,jdbcType=VARCHAR}, #{executionTimes,jdbcType=INTEGER},
|
||||||
#{automaticStatusUpdate,jdbcType=BIT}, #{tags,jdbcType=LONGVARCHAR}, #{reportSummary,jdbcType=LONGVARCHAR},
|
#{automaticStatusUpdate,jdbcType=BIT}, #{followPeople,jdbcType=VARCHAR}, #{tags,jdbcType=LONGVARCHAR},
|
||||||
#{reportConfig,jdbcType=LONGVARCHAR})
|
#{reportSummary,jdbcType=LONGVARCHAR}, #{reportConfig,jdbcType=LONGVARCHAR})
|
||||||
</insert>
|
</insert>
|
||||||
<insert id="insertSelective" parameterType="io.metersphere.base.domain.TestPlanWithBLOBs">
|
<insert id="insertSelective" parameterType="io.metersphere.base.domain.TestPlanWithBLOBs">
|
||||||
insert into test_plan
|
insert into test_plan
|
||||||
|
@ -219,6 +221,9 @@
|
||||||
<if test="automaticStatusUpdate != null">
|
<if test="automaticStatusUpdate != null">
|
||||||
automatic_status_update,
|
automatic_status_update,
|
||||||
</if>
|
</if>
|
||||||
|
<if test="followPeople != null">
|
||||||
|
follow_people,
|
||||||
|
</if>
|
||||||
<if test="tags != null">
|
<if test="tags != null">
|
||||||
tags,
|
tags,
|
||||||
</if>
|
</if>
|
||||||
|
@ -287,6 +292,9 @@
|
||||||
<if test="automaticStatusUpdate != null">
|
<if test="automaticStatusUpdate != null">
|
||||||
#{automaticStatusUpdate,jdbcType=BIT},
|
#{automaticStatusUpdate,jdbcType=BIT},
|
||||||
</if>
|
</if>
|
||||||
|
<if test="followPeople != null">
|
||||||
|
#{followPeople,jdbcType=VARCHAR},
|
||||||
|
</if>
|
||||||
<if test="tags != null">
|
<if test="tags != null">
|
||||||
#{tags,jdbcType=LONGVARCHAR},
|
#{tags,jdbcType=LONGVARCHAR},
|
||||||
</if>
|
</if>
|
||||||
|
@ -364,6 +372,9 @@
|
||||||
<if test="record.automaticStatusUpdate != null">
|
<if test="record.automaticStatusUpdate != null">
|
||||||
automatic_status_update = #{record.automaticStatusUpdate,jdbcType=BIT},
|
automatic_status_update = #{record.automaticStatusUpdate,jdbcType=BIT},
|
||||||
</if>
|
</if>
|
||||||
|
<if test="record.followPeople != null">
|
||||||
|
follow_people = #{record.followPeople,jdbcType=VARCHAR},
|
||||||
|
</if>
|
||||||
<if test="record.tags != null">
|
<if test="record.tags != null">
|
||||||
tags = #{record.tags,jdbcType=LONGVARCHAR},
|
tags = #{record.tags,jdbcType=LONGVARCHAR},
|
||||||
</if>
|
</if>
|
||||||
|
@ -399,6 +410,7 @@
|
||||||
project_id = #{record.projectId,jdbcType=VARCHAR},
|
project_id = #{record.projectId,jdbcType=VARCHAR},
|
||||||
execution_times = #{record.executionTimes,jdbcType=INTEGER},
|
execution_times = #{record.executionTimes,jdbcType=INTEGER},
|
||||||
automatic_status_update = #{record.automaticStatusUpdate,jdbcType=BIT},
|
automatic_status_update = #{record.automaticStatusUpdate,jdbcType=BIT},
|
||||||
|
follow_people = #{record.followPeople,jdbcType=VARCHAR},
|
||||||
tags = #{record.tags,jdbcType=LONGVARCHAR},
|
tags = #{record.tags,jdbcType=LONGVARCHAR},
|
||||||
report_summary = #{record.reportSummary,jdbcType=LONGVARCHAR},
|
report_summary = #{record.reportSummary,jdbcType=LONGVARCHAR},
|
||||||
report_config = #{record.reportConfig,jdbcType=LONGVARCHAR}
|
report_config = #{record.reportConfig,jdbcType=LONGVARCHAR}
|
||||||
|
@ -426,7 +438,8 @@
|
||||||
creator = #{record.creator,jdbcType=VARCHAR},
|
creator = #{record.creator,jdbcType=VARCHAR},
|
||||||
project_id = #{record.projectId,jdbcType=VARCHAR},
|
project_id = #{record.projectId,jdbcType=VARCHAR},
|
||||||
execution_times = #{record.executionTimes,jdbcType=INTEGER},
|
execution_times = #{record.executionTimes,jdbcType=INTEGER},
|
||||||
automatic_status_update = #{record.automaticStatusUpdate,jdbcType=BIT}
|
automatic_status_update = #{record.automaticStatusUpdate,jdbcType=BIT},
|
||||||
|
follow_people = #{record.followPeople,jdbcType=VARCHAR}
|
||||||
<if test="_parameter != null">
|
<if test="_parameter != null">
|
||||||
<include refid="Update_By_Example_Where_Clause" />
|
<include refid="Update_By_Example_Where_Clause" />
|
||||||
</if>
|
</if>
|
||||||
|
@ -488,6 +501,9 @@
|
||||||
<if test="automaticStatusUpdate != null">
|
<if test="automaticStatusUpdate != null">
|
||||||
automatic_status_update = #{automaticStatusUpdate,jdbcType=BIT},
|
automatic_status_update = #{automaticStatusUpdate,jdbcType=BIT},
|
||||||
</if>
|
</if>
|
||||||
|
<if test="followPeople != null">
|
||||||
|
follow_people = #{followPeople,jdbcType=VARCHAR},
|
||||||
|
</if>
|
||||||
<if test="tags != null">
|
<if test="tags != null">
|
||||||
tags = #{tags,jdbcType=LONGVARCHAR},
|
tags = #{tags,jdbcType=LONGVARCHAR},
|
||||||
</if>
|
</if>
|
||||||
|
@ -520,6 +536,7 @@
|
||||||
project_id = #{projectId,jdbcType=VARCHAR},
|
project_id = #{projectId,jdbcType=VARCHAR},
|
||||||
execution_times = #{executionTimes,jdbcType=INTEGER},
|
execution_times = #{executionTimes,jdbcType=INTEGER},
|
||||||
automatic_status_update = #{automaticStatusUpdate,jdbcType=BIT},
|
automatic_status_update = #{automaticStatusUpdate,jdbcType=BIT},
|
||||||
|
follow_people = #{followPeople,jdbcType=VARCHAR},
|
||||||
tags = #{tags,jdbcType=LONGVARCHAR},
|
tags = #{tags,jdbcType=LONGVARCHAR},
|
||||||
report_summary = #{reportSummary,jdbcType=LONGVARCHAR},
|
report_summary = #{reportSummary,jdbcType=LONGVARCHAR},
|
||||||
report_config = #{reportConfig,jdbcType=LONGVARCHAR}
|
report_config = #{reportConfig,jdbcType=LONGVARCHAR}
|
||||||
|
@ -544,7 +561,8 @@
|
||||||
creator = #{creator,jdbcType=VARCHAR},
|
creator = #{creator,jdbcType=VARCHAR},
|
||||||
project_id = #{projectId,jdbcType=VARCHAR},
|
project_id = #{projectId,jdbcType=VARCHAR},
|
||||||
execution_times = #{executionTimes,jdbcType=INTEGER},
|
execution_times = #{executionTimes,jdbcType=INTEGER},
|
||||||
automatic_status_update = #{automaticStatusUpdate,jdbcType=BIT}
|
automatic_status_update = #{automaticStatusUpdate,jdbcType=BIT},
|
||||||
|
follow_people = #{followPeople,jdbcType=VARCHAR}
|
||||||
where id = #{id,jdbcType=VARCHAR}
|
where id = #{id,jdbcType=VARCHAR}
|
||||||
</update>
|
</update>
|
||||||
</mapper>
|
</mapper>
|
|
@ -52,4 +52,5 @@ create table if not exists relationship_edge (
|
||||||
COLLATE utf8mb4_general_ci;
|
COLLATE utf8mb4_general_ci;
|
||||||
|
|
||||||
ALTER TABLE test_case_review ADD COLUMN follow_people;
|
ALTER TABLE test_case_review ADD COLUMN follow_people;
|
||||||
|
ALTER TABLE test_plan ADD COLUMN follow_people;
|
||||||
|
|
||||||
|
|
|
@ -88,6 +88,21 @@
|
||||||
<ms-instructions-icon :content="'当功能用例关联的接口或性能用例在测试计划执行后,自动更新功能用例的状态'"/>
|
<ms-instructions-icon :content="'当功能用例关联的接口或性能用例在测试计划执行后,自动更新功能用例的状态'"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item :label="$t('test_track.plan.follow_people')" :label-width="formLabelWidth"
|
||||||
|
prop="followPeople">
|
||||||
|
<el-select v-model="form.followPeople"
|
||||||
|
clearable
|
||||||
|
:placeholder="$t('test_track.plan.follow_people')" filterable size="small">
|
||||||
|
<el-option
|
||||||
|
v-for="item in maintainerOptions"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.id + ' (' + item.name + ')'"
|
||||||
|
:value="item.id">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<el-row type="flex" justify="left" :gutter="20">
|
<el-row type="flex" justify="left" :gutter="20">
|
||||||
|
@ -172,14 +187,24 @@ export default {
|
||||||
},
|
},
|
||||||
formLabelWidth: "100px",
|
formLabelWidth: "100px",
|
||||||
operationType: '',
|
operationType: '',
|
||||||
principalOptions: []
|
principalOptions: [],
|
||||||
|
maintainerOptions: [],
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
//设置“测试阶段”和“负责人”的默认值
|
//设置“测试阶段”和“负责人”的默认值
|
||||||
this.form.stage = 'smoke';
|
this.form.stage = 'smoke';
|
||||||
|
this.getSelectOptions();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
getMaintainerOptions() {
|
||||||
|
this.$post('/user/project/member/tester/list', {projectId: getCurrentProjectID()}, response => {
|
||||||
|
this.maintainerOptions = response.data;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
getSelectOptions() {
|
||||||
|
this.getMaintainerOptions();
|
||||||
|
},
|
||||||
reload() {
|
reload() {
|
||||||
this.isStepTableAlive = false;
|
this.isStepTableAlive = false;
|
||||||
this.$nextTick(() => (this.isStepTableAlive = true));
|
this.$nextTick(() => (this.isStepTableAlive = true));
|
||||||
|
@ -199,6 +224,7 @@ export default {
|
||||||
}
|
}
|
||||||
listenGoBack(this.close);
|
listenGoBack(this.close);
|
||||||
this.dialogFormVisible = true;
|
this.dialogFormVisible = true;
|
||||||
|
this.getSelectOptions();
|
||||||
this.reload();
|
this.reload();
|
||||||
},
|
},
|
||||||
testPlanInfo() {
|
testPlanInfo() {
|
||||||
|
|
|
@ -74,6 +74,14 @@
|
||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
v-if="item.id=='followPeople'"
|
||||||
|
prop="followPeople"
|
||||||
|
:label="$t('test_track.plan.follow_people')"
|
||||||
|
show-overflow-tooltip
|
||||||
|
:key="index"
|
||||||
|
>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
v-if="item.id == 'stage'"
|
v-if="item.id == 'stage'"
|
||||||
prop="stage"
|
prop="stage"
|
||||||
|
|
|
@ -1591,6 +1591,7 @@ export default {
|
||||||
related_project: "Related Project",
|
related_project: "Related Project",
|
||||||
related_tip: "After linking the project, you can add test cases under the linking project to the test plan list",
|
related_tip: "After linking the project, you can add test cases under the linking project to the test plan list",
|
||||||
plan_stage: "Stage",
|
plan_stage: "Stage",
|
||||||
|
follow_people: "Follow",
|
||||||
plan_status: "Status",
|
plan_status: "Status",
|
||||||
smoke_test: "Smoke test",
|
smoke_test: "Smoke test",
|
||||||
functional_test: "Functional test",
|
functional_test: "Functional test",
|
||||||
|
|
|
@ -1599,6 +1599,7 @@ export default {
|
||||||
related_project: "关联项目",
|
related_project: "关联项目",
|
||||||
related_tip: "关联项目后可以添加关联项目下的测试用例到测试计划列表",
|
related_tip: "关联项目后可以添加关联项目下的测试用例到测试计划列表",
|
||||||
plan_stage: "测试阶段",
|
plan_stage: "测试阶段",
|
||||||
|
follow_people: "关注人",
|
||||||
plan_status: "当前状态",
|
plan_status: "当前状态",
|
||||||
smoke_test: "冒烟测试",
|
smoke_test: "冒烟测试",
|
||||||
functional_test: "功能测试",
|
functional_test: "功能测试",
|
||||||
|
|
|
@ -1600,6 +1600,7 @@ export default {
|
||||||
related_project: "關聯項目",
|
related_project: "關聯項目",
|
||||||
related_tip: "關聯項目後可以添加關聯項目下的測試用例到測試計劃列表",
|
related_tip: "關聯項目後可以添加關聯項目下的測試用例到測試計劃列表",
|
||||||
plan_stage: "測試階段",
|
plan_stage: "測試階段",
|
||||||
|
follow_people: "關註人",
|
||||||
plan_status: "當前狀態",
|
plan_status: "當前狀態",
|
||||||
smoke_test: "冒煙測試",
|
smoke_test: "冒煙測試",
|
||||||
functional_test: "功能測試",
|
functional_test: "功能測試",
|
||||||
|
|
Loading…
Reference in New Issue