From 0bf8760624e0890fee67551acb1e0ac39190812f Mon Sep 17 00:00:00 2001 From: MeterSphere Bot <78466014+metersphere-bot@users.noreply.github.com> Date: Wed, 12 Oct 2022 10:11:49 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E6=B5=8B=E8=AF=95=E8=B7=9F=E8=B8=AA):=20?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E7=94=A8=E4=BE=8B=E6=89=B9=E9=87=8F=E5=AF=BC?= =?UTF-8?q?=E5=85=A5=E9=97=AE=E9=A2=98=20(#18410)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --bug=1017686,1017721 --user=宋昌昌 【测试跟踪】导入功能用例,责任人和用例等级不显示 https://www.tapd.cn/55049933/s/1258328 Co-authored-by: song-cc-rock --- .../listener/TestCaseNoModelDataListener.java | 2 +- .../metersphere/service/TestCaseService.java | 168 +++++++++--------- .../business/case/components/TestCaseList.vue | 1 + 3 files changed, 83 insertions(+), 88 deletions(-) diff --git a/test-track/backend/src/main/java/io/metersphere/excel/listener/TestCaseNoModelDataListener.java b/test-track/backend/src/main/java/io/metersphere/excel/listener/TestCaseNoModelDataListener.java index d1dcace0f7..1182607b22 100644 --- a/test-track/backend/src/main/java/io/metersphere/excel/listener/TestCaseNoModelDataListener.java +++ b/test-track/backend/src/main/java/io/metersphere/excel/listener/TestCaseNoModelDataListener.java @@ -533,7 +533,6 @@ public class TestCaseNoModelDataListener extends AnalysisEventListener columns = ReflexObjectUtil.getColumns(bloBs, TestCaseReference.testCaseColumns); -// // 关联内容用例内容 -// TestCaseTestExample example = new TestCaseTestExample(); -// example.createCriteria().andTestCaseIdEqualTo(id); -// List testCaseTests = testCaseTestMapper.selectByExample(example); -// StringBuilder nameBuilder = new StringBuilder(); -// if (CollectionUtils.isNotEmpty(testCaseTests)) { -// List testCaseIds = testCaseTests.stream() -// .filter(user -> user.getTestType().equals("testcase")).map(TestCaseTest::getTestId) -// .collect(Collectors.toList()); -// -// List performanceIds = testCaseTests.stream() -// .filter(user -> user.getTestType().equals("performance")).map(TestCaseTest::getTestId) -// .collect(Collectors.toList()); -// -// List automationIds = testCaseTests.stream() -// .filter(user -> user.getTestType().equals("automation")).map(TestCaseTest::getTestId) -// .collect(Collectors.toList()); -// if (CollectionUtils.isNotEmpty(testCaseIds)) { -// ApiTestCaseExample testCaseExample = new ApiTestCaseExample(); -// testCaseExample.createCriteria().andIdIn(testCaseIds); -// List testCases = apiTestCaseMapper.selectByExample(testCaseExample); -// List caseNames = testCases.stream().map(ApiTestCase::getName).collect(Collectors.toList()); -// if (CollectionUtils.isNotEmpty(caseNames)) { -// nameBuilder.append("接口用例:").append("\n").append(caseNames).append("\n"); -// } -// } -// if (CollectionUtils.isNotEmpty(performanceIds)) { -// LoadTestExample loadTestExample = new LoadTestExample(); -// loadTestExample.createCriteria().andIdIn(performanceIds); -// List loadTests = loadTestMapper.selectByExample(loadTestExample); -// List caseNames = loadTests.stream().map(LoadTest::getName).collect(Collectors.toList()); -// if (CollectionUtils.isNotEmpty(caseNames)) { -// nameBuilder.append("性能用例:").append("\n").append(caseNames).append("\n"); -// } -// } -// if (CollectionUtils.isNotEmpty(automationIds)) { -// ApiScenarioExample scenarioExample = new ApiScenarioExample(); -// scenarioExample.createCriteria().andIdIn(automationIds); -// List scenarios = apiScenarioMapper.selectByExample(scenarioExample); -// List caseNames = scenarios.stream().map(ApiScenario::getName).collect(Collectors.toList()); -// if (CollectionUtils.isNotEmpty(caseNames)) { -// nameBuilder.append("自动化用例:").append("\n").append(caseNames).append("\n"); -// } -// } -// } -// DetailColumn column = new DetailColumn("关联测试", "testcase", nameBuilder.toString(), null); -// columns.add(column); -// -// //关联缺陷 -// List issuesNames = new LinkedList<>(); -// TestCaseIssuesExample testCaseIssuesExample = new TestCaseIssuesExample(); -// testCaseIssuesExample.createCriteria().andResourceIdEqualTo(bloBs.getId()); -// List testCaseIssues = testCaseIssuesMapper.selectByExample(testCaseIssuesExample); -// if (CollectionUtils.isNotEmpty(testCaseIssues)) { -// List issuesIds = testCaseIssues.stream().map(TestCaseIssues::getIssuesId).collect(Collectors.toList()); -// IssuesExample issuesExample = new IssuesExample(); -// issuesExample.createCriteria().andIdIn(issuesIds); -// List issues = issuesMapper.selectByExample(issuesExample); -// if (CollectionUtils.isNotEmpty(issues)) { -// issuesNames = issues.stream().map(Issues::getTitle).collect(Collectors.toList()); -// } -// } -// DetailColumn issuesColumn = new DetailColumn("关联缺陷 ", "issues", String.join(",", issuesNames), null); -// columns.add(issuesColumn); -// //附件 -// List originFiles = attachmentService.getFileMetadataByCaseId(id); -// List fileNames = new LinkedList<>(); -// if (CollectionUtils.isNotEmpty(originFiles)) { -// fileNames = originFiles.stream().map(FileMetadata::getName).collect(Collectors.toList()); -// } -// DetailColumn fileColumn = new DetailColumn("附件 ", "files", String.join(",", fileNames), null); -// columns.add(fileColumn); -// -// // 增加评论内容 -// List dtos = testCaseCommentService.getCaseComments(id); -// List names = new LinkedList<>(); -// if (CollectionUtils.isNotEmpty(dtos)) { -// names = dtos.stream().map(TestCaseCommentDTO::getDescription).collect(Collectors.toList()); -// } -// DetailColumn detailColumn = new DetailColumn("评论", "comment", String.join("\n", names), null); -// columns.add(detailColumn); -// -// OperatingLogDetails details = new OperatingLogDetails(JSON.toJSONString(id), bloBs.getProjectId(), bloBs.getName(), bloBs.getCreateUser(), columns); -// return JSON.toJSONString(details); -// } + if (bloBs != null) { + List columns = ReflexObjectUtil.getColumns(bloBs, TestCaseReference.testCaseColumns); + // 关联内容用例内容 + TestCaseTestExample example = new TestCaseTestExample(); + example.createCriteria().andTestCaseIdEqualTo(id); + List testCaseTests = testCaseTestMapper.selectByExample(example); + StringBuilder nameBuilder = new StringBuilder(); + if (CollectionUtils.isNotEmpty(testCaseTests)) { + List testCaseIds = testCaseTests.stream() + .filter(user -> user.getTestType().equals("testcase")).map(TestCaseTest::getTestId) + .collect(Collectors.toList()); + + List performanceIds = testCaseTests.stream() + .filter(user -> user.getTestType().equals("performance")).map(TestCaseTest::getTestId) + .collect(Collectors.toList()); + + List automationIds = testCaseTests.stream() + .filter(user -> user.getTestType().equals("automation")).map(TestCaseTest::getTestId) + .collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(testCaseIds)) { + List testCases = relevanceApiCaseService.getApiCaseByIds(testCaseIds); + List caseNames = testCases.stream().map(ApiTestCase::getName).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(caseNames)) { + nameBuilder.append("接口用例:").append("\n").append(caseNames).append("\n"); + } + } + if (CollectionUtils.isNotEmpty(performanceIds)) { + List loadTests = relevanceLoadCaseService.getLoadCaseByIds(performanceIds); + List caseNames = loadTests.stream().map(LoadTest::getName).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(caseNames)) { + nameBuilder.append("性能用例:").append("\n").append(caseNames).append("\n"); + } + } + if (CollectionUtils.isNotEmpty(automationIds)) { + List scenarios = relevanceApiCaseService.getScenarioCaseByIds(automationIds); + List caseNames = scenarios.stream().map(ApiScenario::getName).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(caseNames)) { + nameBuilder.append("自动化用例:").append("\n").append(caseNames).append("\n"); + } + } + } + DetailColumn column = new DetailColumn("关联测试", "testcase", nameBuilder.toString(), null); + columns.add(column); + + //关联缺陷 + List issuesNames = new LinkedList<>(); + TestCaseIssuesExample testCaseIssuesExample = new TestCaseIssuesExample(); + testCaseIssuesExample.createCriteria().andResourceIdEqualTo(bloBs.getId()); + List testCaseIssues = testCaseIssuesMapper.selectByExample(testCaseIssuesExample); + if (CollectionUtils.isNotEmpty(testCaseIssues)) { + List issuesIds = testCaseIssues.stream().map(TestCaseIssues::getIssuesId).collect(Collectors.toList()); + IssuesExample issuesExample = new IssuesExample(); + issuesExample.createCriteria().andIdIn(issuesIds); + List issues = issuesMapper.selectByExample(issuesExample); + if (CollectionUtils.isNotEmpty(issues)) { + issuesNames = issues.stream().map(Issues::getTitle).collect(Collectors.toList()); + } + } + DetailColumn issuesColumn = new DetailColumn("关联缺陷 ", "issues", String.join(",", issuesNames), null); + columns.add(issuesColumn); + //附件 + List originFiles = attachmentService.getFileMetadataByCaseId(id); + List fileNames = new LinkedList<>(); + if (CollectionUtils.isNotEmpty(originFiles)) { + fileNames = originFiles.stream().map(FileMetadata::getName).collect(Collectors.toList()); + } + DetailColumn fileColumn = new DetailColumn("附件 ", "files", String.join(",", fileNames), null); + columns.add(fileColumn); + + // 增加评论内容 + List dtos = testCaseCommentService.getCaseComments(id); + List names = new LinkedList<>(); + if (CollectionUtils.isNotEmpty(dtos)) { + names = dtos.stream().map(TestCaseCommentDTO::getDescription).collect(Collectors.toList()); + } + DetailColumn detailColumn = new DetailColumn("评论", "comment", String.join("\n", names), null); + columns.add(detailColumn); + + OperatingLogDetails details = new OperatingLogDetails(JSON.toJSONString(id), bloBs.getProjectId(), bloBs.getName(), bloBs.getCreateUser(), columns); + return JSON.toJSONString(details); + } return null; } diff --git a/test-track/frontend/src/business/case/components/TestCaseList.vue b/test-track/frontend/src/business/case/components/TestCaseList.vue index f1be9c499e..b8ef2497cb 100644 --- a/test-track/frontend/src/business/case/components/TestCaseList.vue +++ b/test-track/frontend/src/business/case/components/TestCaseList.vue @@ -69,6 +69,7 @@