fix(测试计划): 修复批量复制测试计划组的bug
This commit is contained in:
parent
c2df6e04e2
commit
44e0fbac10
|
@ -88,7 +88,7 @@ public class TestPlanService extends TestPlanBaseUtilsService {
|
||||||
* 创建测试计划
|
* 创建测试计划
|
||||||
*/
|
*/
|
||||||
public TestPlan add(TestPlanCreateRequest testPlanCreateRequest, String operator, String requestUrl, String requestMethod) {
|
public TestPlan add(TestPlanCreateRequest testPlanCreateRequest, String operator, String requestUrl, String requestMethod) {
|
||||||
TestPlan testPlan = savePlanDTO(testPlanCreateRequest, operator, null);
|
TestPlan testPlan = savePlanDTO(testPlanCreateRequest, operator);
|
||||||
// 保存规划节点及配置
|
// 保存规划节点及配置
|
||||||
saveAllocation(testPlanCreateRequest.getAllocationRequest(), operator, testPlan.getId());
|
saveAllocation(testPlanCreateRequest.getAllocationRequest(), operator, testPlan.getId());
|
||||||
testPlanLogService.saveAddLog(testPlan, operator, requestUrl, requestMethod);
|
testPlanLogService.saveAddLog(testPlan, operator, requestUrl, requestMethod);
|
||||||
|
@ -101,9 +101,8 @@ public class TestPlanService extends TestPlanBaseUtilsService {
|
||||||
*
|
*
|
||||||
* @param createOrCopyRequest
|
* @param createOrCopyRequest
|
||||||
* @param operator
|
* @param operator
|
||||||
* @param id 复制的计划/计划组id 判断新增还是复制
|
|
||||||
*/
|
*/
|
||||||
private TestPlan savePlanDTO(TestPlanCreateRequest createOrCopyRequest, String operator, String id) {
|
private TestPlan savePlanDTO(TestPlanCreateRequest createOrCopyRequest, String operator) {
|
||||||
//检查模块的合法性
|
//检查模块的合法性
|
||||||
checkModule(createOrCopyRequest.getModuleId());
|
checkModule(createOrCopyRequest.getModuleId());
|
||||||
TestPlan createTestPlan = new TestPlan();
|
TestPlan createTestPlan = new TestPlan();
|
||||||
|
@ -125,12 +124,7 @@ public class TestPlanService extends TestPlanBaseUtilsService {
|
||||||
testPlanConfig.setRepeatCase(createOrCopyRequest.isRepeatCase());
|
testPlanConfig.setRepeatCase(createOrCopyRequest.isRepeatCase());
|
||||||
testPlanConfig.setPassThreshold(createOrCopyRequest.getPassThreshold());
|
testPlanConfig.setPassThreshold(createOrCopyRequest.getPassThreshold());
|
||||||
|
|
||||||
if (StringUtils.isBlank(id)) {
|
handleAssociateCase(createOrCopyRequest.getBaseAssociateCaseRequest(), operator, createTestPlan);
|
||||||
handleAssociateCase(createOrCopyRequest.getBaseAssociateCaseRequest(), operator, createTestPlan);
|
|
||||||
} else {
|
|
||||||
//复制
|
|
||||||
handleCopy(createTestPlan, id);
|
|
||||||
}
|
|
||||||
|
|
||||||
testPlanMapper.insert(createTestPlan);
|
testPlanMapper.insert(createTestPlan);
|
||||||
testPlanConfigMapper.insert(testPlanConfig);
|
testPlanConfigMapper.insert(testPlanConfig);
|
||||||
|
@ -507,43 +501,6 @@ public class TestPlanService extends TestPlanBaseUtilsService {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 处理复制
|
|
||||||
*
|
|
||||||
* @param testPlan
|
|
||||||
* @param id
|
|
||||||
*/
|
|
||||||
private void handleCopy(TestPlan testPlan, String id) {
|
|
||||||
if (StringUtils.equalsIgnoreCase(testPlan.getType(), TestPlanConstants.TEST_PLAN_TYPE_GROUP)) {
|
|
||||||
//计划组
|
|
||||||
TestPlanExample example = new TestPlanExample();
|
|
||||||
example.createCriteria().andGroupIdEqualTo(id);
|
|
||||||
List<TestPlan> testPlans = testPlanMapper.selectByExample(example);
|
|
||||||
if (CollectionUtils.isEmpty(testPlans)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
List<String> ids = testPlans.stream().map(TestPlan::getId).collect(Collectors.toList());
|
|
||||||
doHandleAssociateCase(ids, testPlan);
|
|
||||||
} else {
|
|
||||||
//计划
|
|
||||||
doHandleAssociateCase(Arrays.asList(id), testPlan);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 处理复制 关联用例数据
|
|
||||||
*
|
|
||||||
* @param ids
|
|
||||||
*/
|
|
||||||
private void doHandleAssociateCase(List<String> ids, TestPlan testPlan) {
|
|
||||||
testPlanCaseService.saveTestPlanByPlanId(ids, testPlan);
|
|
||||||
//TODO 复制关联接口用例/接口场景用例
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取单个测试计划或测试计划组详情(用于编辑)
|
* 获取单个测试计划或测试计划组详情(用于编辑)
|
||||||
*
|
*
|
||||||
|
@ -633,7 +590,7 @@ public class TestPlanService extends TestPlanBaseUtilsService {
|
||||||
List<TestPlan> copyTestPlanList = testPlanMapper.selectByExample(example);
|
List<TestPlan> copyTestPlanList = testPlanMapper.selectByExample(example);
|
||||||
|
|
||||||
//批量复制时,不允许存在测试计划组下的测试计划。
|
//批量复制时,不允许存在测试计划组下的测试计划。
|
||||||
copyTestPlanList = copyTestPlanList.stream().filter(item -> !StringUtils.equalsIgnoreCase(item.getGroupId(), TestPlanConstants.TEST_PLAN_DEFAULT_GROUP_ID))
|
copyTestPlanList = copyTestPlanList.stream().filter(item -> StringUtils.equalsIgnoreCase(item.getGroupId(), TestPlanConstants.TEST_PLAN_DEFAULT_GROUP_ID))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
//日志
|
//日志
|
||||||
if (CollectionUtils.isNotEmpty(copyTestPlanList)) {
|
if (CollectionUtils.isNotEmpty(copyTestPlanList)) {
|
||||||
|
|
|
@ -1324,6 +1324,49 @@ public class TestPlanTests extends BaseTest {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Order(81)
|
||||||
|
public void copyTestPlan() throws Exception {
|
||||||
|
BaseTreeNode a1b1Node = TestPlanTestUtils.getNodeByName(preliminaryTreeNodes, "a1-b1");
|
||||||
|
|
||||||
|
// 批量赋值测试计划组下的测试计划(其实不复制)
|
||||||
|
TestPlanBatchRequest request = new TestPlanBatchRequest();
|
||||||
|
request.setProjectId(project.getId());
|
||||||
|
request.setTargetId(a1b1Node.getId());
|
||||||
|
request.setSelectIds(Collections.singletonList(simpleTestPlan.getId()));
|
||||||
|
this.requestPostWithOkAndReturn(URL_TEST_PLAN_BATCH_COPY, request);
|
||||||
|
TestPlanExample testPlanExample = new TestPlanExample();
|
||||||
|
testPlanExample.createCriteria().andNameLike("copy_" + simpleTestPlan.getName() + "%");
|
||||||
|
TestPlan copyTestPlan = testPlanMapper.selectByExample(testPlanExample).getFirst();
|
||||||
|
Assertions.assertTrue(copyTestPlan != null);
|
||||||
|
//删除
|
||||||
|
this.requestGet(String.format(URL_GET_TEST_PLAN_DELETE, copyTestPlan.getId())).andExpect(status().isOk());
|
||||||
|
|
||||||
|
//测试复制测试计划组下的测试计划
|
||||||
|
List<TestPlanResponse> childs = this.selectByGroupId(groupTestPlanId7);
|
||||||
|
TestPlanResponse firstChild = childs.getFirst();
|
||||||
|
request.setSelectIds(Collections.singletonList(firstChild.getId()));
|
||||||
|
this.requestPostWithOkAndReturn(URL_TEST_PLAN_BATCH_COPY, request);
|
||||||
|
copyTestPlan = testPlanTestService.selectTestPlanByName("copy_" + firstChild.getName());
|
||||||
|
Assertions.assertTrue(copyTestPlan == null);
|
||||||
|
|
||||||
|
//批量赋值测试计划组
|
||||||
|
TestPlan testPlanGroup7 = testPlanMapper.selectByPrimaryKey(groupTestPlanId7);
|
||||||
|
|
||||||
|
request.setSelectIds(Collections.singletonList(groupTestPlanId7));
|
||||||
|
this.requestPostWithOkAndReturn(URL_TEST_PLAN_BATCH_COPY, request);
|
||||||
|
testPlanExample.clear();
|
||||||
|
testPlanExample.createCriteria().andNameLike("copy_" + testPlanGroup7.getName() + "%").andTypeEqualTo(TestPlanConstants.TEST_PLAN_TYPE_GROUP);
|
||||||
|
TestPlan copyGroup = testPlanMapper.selectByExample(testPlanExample).getFirst();
|
||||||
|
Assertions.assertTrue(copyGroup != null);
|
||||||
|
List<TestPlanResponse> copyChild = this.selectByGroupId(copyGroup.getId());
|
||||||
|
childs = childs.stream().filter(item -> !StringUtils.equalsIgnoreCase(item.getStatus(), TestPlanConstants.TEST_PLAN_STATUS_ARCHIVED)).collect(Collectors.toList());
|
||||||
|
Assertions.assertTrue(copyChild.size() == childs.size());
|
||||||
|
|
||||||
|
//删除
|
||||||
|
this.requestGet(String.format(URL_GET_TEST_PLAN_DELETE, copyGroup.getId())).andExpect(status().isOk());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@Order(91)
|
@Order(91)
|
||||||
|
@ -2021,20 +2064,6 @@ public class TestPlanTests extends BaseTest {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Test
|
|
||||||
@Order(304)
|
|
||||||
public void testBatchCopy() throws Exception {
|
|
||||||
TestPlanBatchRequest request = new TestPlanBatchRequest();
|
|
||||||
request.setProjectId("songtianyang-fix-wx");
|
|
||||||
request.setType("ALL");
|
|
||||||
request.setTargetId("2");
|
|
||||||
request.setSelectIds(Arrays.asList("wx_test_plan_id_1", "wx_test_plan_id_2"));
|
|
||||||
|
|
||||||
this.requestPostWithOkAndReturn(URL_TEST_PLAN_BATCH_COPY, request);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@Order(304)
|
@Order(304)
|
||||||
public void testBatchMove() throws Exception {
|
public void testBatchMove() throws Exception {
|
||||||
|
|
Loading…
Reference in New Issue