Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
MeterSphere
metersphere
提交
439cf3b8
M
metersphere
项目概览
MeterSphere
/
metersphere
上一次同步 大约 3 年
通知
25
Star
1
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
metersphere
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
439cf3b8
编写于
12月 01, 2020
作者:
S
shiziyuan9527
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
refactor(测试跟踪): 用例评审查询优化
上级
44e21cea
变更
11
隐藏空白更改
内联
并排
Showing
11 changed file
with
84 addition
and
56 deletion
+84
-56
backend/src/main/java/io/metersphere/base/mapper/ext/ExtTestPlanTestCaseMapper.java
...etersphere/base/mapper/ext/ExtTestPlanTestCaseMapper.java
+0
-7
backend/src/main/java/io/metersphere/base/mapper/ext/ExtTestPlanTestCaseMapper.xml
...metersphere/base/mapper/ext/ExtTestPlanTestCaseMapper.xml
+0
-7
backend/src/main/java/io/metersphere/base/mapper/ext/ExtTestReviewCaseMapper.java
.../metersphere/base/mapper/ext/ExtTestReviewCaseMapper.java
+7
-0
backend/src/main/java/io/metersphere/base/mapper/ext/ExtTestReviewCaseMapper.xml
...o/metersphere/base/mapper/ext/ExtTestReviewCaseMapper.xml
+13
-1
backend/src/main/java/io/metersphere/service/CheckOwnerService.java
...c/main/java/io/metersphere/service/CheckOwnerService.java
+4
-0
backend/src/main/java/io/metersphere/service/FileService.java
...end/src/main/java/io/metersphere/service/FileService.java
+1
-1
backend/src/main/java/io/metersphere/track/controller/TestReviewTestCaseController.java
...sphere/track/controller/TestReviewTestCaseController.java
+14
-1
backend/src/main/java/io/metersphere/track/service/TestReviewTestCaseService.java
.../metersphere/track/service/TestReviewTestCaseService.java
+9
-0
frontend/src/business/components/track/plan/view/comonents/TestPlanTestCaseEdit.vue
...onents/track/plan/view/comonents/TestPlanTestCaseEdit.vue
+4
-4
frontend/src/business/components/track/review/view/components/TestReviewTestCaseEdit.vue
...s/track/review/view/components/TestReviewTestCaseEdit.vue
+31
-34
frontend/src/business/components/xpack
frontend/src/business/components/xpack
+1
-1
未找到文件。
backend/src/main/java/io/metersphere/base/mapper/ext/ExtTestPlanTestCaseMapper.java
浏览文件 @
439cf3b8
...
...
@@ -40,11 +40,4 @@ public interface ExtTestPlanTestCaseMapper {
TestPlanCaseDTO
get
(
String
testPlanTestCaseId
);
/**
* 获取测试计划下的 TestPlanTestCaseID 和 TestCaseName
* @param request planId 不能为空
* @return List<TestPlanCaseDTO>
*/
List
<
TestPlanCaseDTO
>
getTestPlanTestCaseList
(
@Param
(
"request"
)
QueryTestPlanCaseRequest
request
);
}
backend/src/main/java/io/metersphere/base/mapper/ext/ExtTestPlanTestCaseMapper.xml
浏览文件 @
439cf3b8
...
...
@@ -214,13 +214,6 @@
</if>
</select>
<select
id=
"getTestPlanTestCaseList"
resultType=
"io.metersphere.track.dto.TestPlanCaseDTO"
>
select test_plan_test_case.id as id, test_case.name
from test_plan_test_case
inner join test_case on test_plan_test_case.case_id = test_case.id
where test_plan_test_case.plan_id = #{request.planId}
</select>
<select
id=
"listTestCaseByProjectIds"
resultType=
"io.metersphere.track.dto.TestPlanCaseDTO"
>
select distinct * from test_plan_test_case, test_case
where test_plan_test_case.case_id = test_case.id
...
...
backend/src/main/java/io/metersphere/base/mapper/ext/ExtTestReviewCaseMapper.java
浏览文件 @
439cf3b8
...
...
@@ -19,4 +19,11 @@ public interface ExtTestReviewCaseMapper {
* @return List<TestReviewCaseDTO>
*/
List
<
TestReviewCaseDTO
>
listTestCaseByProjectIds
(
@Param
(
"ids"
)
List
<
String
>
ids
);
/**
* 获取 TestReviewTestCase 详细信息
* @param id TestReviewTestCase id
* @return TestReviewTestCase 详细信息
*/
TestReviewCaseDTO
get
(
@Param
(
"id"
)
String
id
);
}
backend/src/main/java/io/metersphere/base/mapper/ext/ExtTestReviewCaseMapper.xml
浏览文件 @
439cf3b8
...
...
@@ -97,7 +97,10 @@
</sql>
<select
id=
"list"
resultType=
"io.metersphere.track.dto.TestReviewCaseDTO"
>
select test_case.remark, test_case_review_test_case.*, test_case.*, test_case_node.name as model, project.name as projectName
select test_case_review_test_case.id as id, test_case.id as caseId, test_case.name, test_case.priority,
test_case.type, test_case.node_path, test_case.method, test_case.num, test_case_review_test_case.reviewer,
test_case.review_status, test_case_review_test_case.update_time, test_case_node.name as model,
project.name as projectName, test_case_review_test_case.review_id as reviewId
from test_case_review_test_case
inner join test_case on test_case_review_test_case.case_id = test_case.id
left join test_case_node on test_case_node.id=test_case.node_id
...
...
@@ -181,6 +184,15 @@
</if>
</select>
<select
id=
"get"
resultType=
"io.metersphere.track.dto.TestReviewCaseDTO"
>
select test_case.remark, test_case_review_test_case.*, test_case.*, test_case_node.name as model, project.name as projectName
from test_case_review_test_case
inner join test_case on test_case_review_test_case.case_id = test_case.id
left join test_case_node on test_case_node.id=test_case.node_id
inner join project on project.id = test_case.project_id
where test_case_review_test_case.id = #{id}
</select>
<select
id=
"getStatusByReviewId"
resultType=
"java.lang.String"
>
select review_status
from test_case
...
...
backend/src/main/java/io/metersphere/service/CheckOwnerService.java
浏览文件 @
439cf3b8
...
...
@@ -61,6 +61,10 @@ public class CheckOwnerService {
}
public
void
checkPerformanceTestOwner
(
String
testId
)
{
// 关联为其他时
if
(
StringUtils
.
equals
(
"other"
,
testId
))
{
return
;
}
String
workspaceId
=
SessionUtils
.
getCurrentWorkspaceId
();
QueryTestPlanRequest
request
=
new
QueryTestPlanRequest
();
request
.
setWorkspaceId
(
workspaceId
);
...
...
backend/src/main/java/io/metersphere/service/FileService.java
浏览文件 @
439cf3b8
...
...
@@ -42,7 +42,7 @@ public class FileService {
final
List
<
LoadTestFile
>
loadTestFiles
=
loadTestFileMapper
.
selectByExample
(
loadTestFileExample
);
if
(
CollectionUtils
.
isEmpty
(
loadTestFiles
))
{
return
n
ull
;
return
n
ew
ArrayList
<>()
;
}
List
<
String
>
fileIds
=
loadTestFiles
.
stream
().
map
(
LoadTestFile:
:
getFileId
).
collect
(
Collectors
.
toList
());
FileMetadataExample
example
=
new
FileMetadataExample
();
...
...
backend/src/main/java/io/metersphere/track/controller/TestReviewTestCaseController.java
浏览文件 @
439cf3b8
...
...
@@ -44,7 +44,7 @@ public class TestReviewTestCaseController {
}
@PostMapping
(
"/list/all"
)
public
List
<
TestReviewCaseDTO
>
getTest
Plan
Cases
(
@RequestBody
QueryCaseReviewRequest
request
)
{
public
List
<
TestReviewCaseDTO
>
getTest
Review
Cases
(
@RequestBody
QueryCaseReviewRequest
request
)
{
return
testReviewTestCaseService
.
list
(
request
);
}
...
...
@@ -53,4 +53,17 @@ public class TestReviewTestCaseController {
public
void
editTestCase
(
@RequestBody
TestCaseReviewTestCase
testCaseReviewTestCase
)
{
testReviewTestCaseService
.
editTestCase
(
testCaseReviewTestCase
);
}
@GetMapping
(
"/get/{reviewId}"
)
@RequiresRoles
(
value
=
{
RoleConstants
.
TEST_USER
,
RoleConstants
.
TEST_MANAGER
,
RoleConstants
.
TEST_VIEWER
},
logical
=
Logical
.
OR
)
public
TestReviewCaseDTO
get
(
@PathVariable
String
reviewId
)
{
return
testReviewTestCaseService
.
get
(
reviewId
);
}
@PostMapping
(
"/list/ids"
)
@RequiresRoles
(
value
=
{
RoleConstants
.
TEST_USER
,
RoleConstants
.
TEST_MANAGER
,
RoleConstants
.
TEST_VIEWER
},
logical
=
Logical
.
OR
)
public
List
<
TestReviewCaseDTO
>
getTestReviewCaseList
(
@RequestBody
QueryCaseReviewRequest
request
)
{
return
testReviewTestCaseService
.
getTestCaseReviewDTOList
(
request
);
}
}
backend/src/main/java/io/metersphere/track/service/TestReviewTestCaseService.java
浏览文件 @
439cf3b8
...
...
@@ -128,4 +128,13 @@ public class TestReviewTestCaseService {
testCase
.
setReviewStatus
(
testCaseReviewTestCase
.
getStatus
());
testCaseMapper
.
updateByPrimaryKeySelective
(
testCase
);
}
public
List
<
TestReviewCaseDTO
>
getTestCaseReviewDTOList
(
QueryCaseReviewRequest
request
)
{
request
.
setOrders
(
ServiceUtils
.
getDefaultOrder
(
request
.
getOrders
()));
return
extTestReviewCaseMapper
.
list
(
request
);
}
public
TestReviewCaseDTO
get
(
String
reviewId
)
{
return
extTestReviewCaseMapper
.
get
(
reviewId
);
}
}
frontend/src/business/components/track/plan/view/comonents/TestPlanTestCaseEdit.vue
浏览文件 @
439cf3b8
...
...
@@ -472,6 +472,7 @@ export default {
this
.
getTestCase
(
this
.
index
);
},
getTestCase
(
index
)
{
this
.
testCase
=
{};
let
testCase
=
this
.
testCases
[
index
];
// id 为 TestPlanTestCase 的 id
this
.
result
=
this
.
$get
(
'
/test/plan/case/get/
'
+
testCase
.
id
,
response
=>
{
...
...
@@ -495,11 +496,10 @@ export default {
this
.
testCase
=
item
;
this
.
getRelatedTest
();
this
.
initTest
();
this
.
getIssues
(
item
.
caseId
);
this
.
stepResultChange
();
this
.
getFileMetaData
(
item
);
})
this
.
getIssues
(
testCase
.
caseId
);
this
.
stepResultChange
();
this
.
getFileMetaData
(
testCase
);
},
getFileMetaData
(
testCase
)
{
this
.
tableData
=
[];
...
...
frontend/src/business/components/track/review/view/components/TestReviewTestCaseEdit.vue
浏览文件 @
439cf3b8
...
...
@@ -102,10 +102,11 @@
<el-col
class=
"test-detail"
:span=
"20"
:offset=
"1"
>
<el-tabs
v-model=
"activeTab"
type=
"border-card"
>
<el-tab-pane
name=
"detail"
:label=
"$t('test_track.plan_view.test_detail')"
>
<api-test-detail
:is-read-only=
"true"
v-if=
"testCase.type === 'api'"
@
runTest=
"testRun"
<api-test-detail
:is-read-only=
"true"
v-if=
"testCase.type === 'api'"
:id=
"testCase.testId"
ref=
"apiTestDetail"
/>
<performance-test-detail
:is-read-only=
"true"
v-if=
"testCase.type === 'performance'"
@
runTest=
"testRun"
:id=
"testCase.testId"
<performance-test-detail
v-if=
"testCase.type === 'performance'"
:is-read-only=
"true"
:id=
"testCase.testId"
ref=
"performanceTestDetail"
/>
</el-tab-pane>
</el-tabs>
...
...
@@ -211,7 +212,6 @@
<test-case-attachment
:table-data=
"tableData"
:read-only=
"false"
:is-delete=
"false"
@
handleDelete=
"handleDelete"
/>
</div>
</el-col>
...
...
@@ -338,20 +338,26 @@ export default {
this
.
getTestCase
(
this
.
index
);
},
getTestCase
(
index
)
{
this
.
testCase
=
{};
let
testCase
=
this
.
testCases
[
index
];
let
item
=
{};
Object
.
assign
(
item
,
testCase
);
item
.
steps
=
JSON
.
parse
(
item
.
steps
);
item
.
steptResults
=
[];
for
(
let
i
=
0
;
i
<
item
.
steps
.
length
;
i
++
)
{
item
.
steps
[
i
].
actualResult
=
''
;
item
.
steps
[
i
].
executeResult
=
''
;
item
.
steptResults
.
push
(
item
.
steps
[
i
]);
}
this
.
testCase
=
item
;
this
.
getComments
(
item
);
this
.
initTest
();
this
.
getFileMetaData
(
testCase
);
this
.
result
=
this
.
$get
(
"
/test/review/case/get/
"
+
testCase
.
id
,
response
=>
{
let
item
=
{};
let
data
=
response
.
data
;
Object
.
assign
(
item
,
data
);
item
.
steps
=
JSON
.
parse
(
item
.
steps
);
item
.
steptResults
=
[];
for
(
let
i
=
0
;
i
<
item
.
steps
.
length
;
i
++
)
{
item
.
steps
[
i
].
actualResult
=
''
;
item
.
steps
[
i
].
executeResult
=
''
;
item
.
steptResults
.
push
(
item
.
steps
[
i
]);
}
this
.
testCase
=
item
;
this
.
getRelatedTest
();
this
.
getComments
(
item
);
this
.
initTest
();
this
.
getFileMetaData
(
data
);
})
},
getFileMetaData
(
testCase
)
{
this
.
tableData
=
[];
...
...
@@ -375,21 +381,16 @@ export default {
},
initTest
()
{
this
.
$nextTick
(()
=>
{
if
(
this
.
testCase
.
method
===
'
auto
'
)
{
if
(
this
.
$refs
.
apiTestDetail
&&
this
.
testCase
.
type
===
'
api
'
)
{
this
.
$refs
.
apiTestDetail
.
init
();
}
else
if
(
this
.
testCase
.
type
===
'
performance
'
)
{
this
.
$refs
.
performanceTestDetail
.
init
();
if
(
this
.
testCase
.
testId
&&
this
.
testCase
.
testId
!==
'
other
'
)
{
if
(
this
.
testCase
.
method
===
'
auto
'
)
{
if
(
this
.
$refs
.
apiTestDetail
&&
this
.
testCase
.
type
===
'
api
'
)
{
this
.
$refs
.
apiTestDetail
.
init
();
}
else
if
(
this
.
testCase
.
type
===
'
performance
'
)
{
this
.
$refs
.
performanceTestDetail
.
init
();
}
}
}
});
},
testRun
(
reportId
)
{
this
.
testCase
.
reportId
=
reportId
;
this
.
saveReport
(
reportId
);
},
saveReport
(
reportId
)
{
},
getComments
(
testCase
)
{
let
id
=
''
;
...
...
@@ -403,13 +404,12 @@ export default {
})
},
initData
(
testCase
)
{
this
.
result
=
this
.
$post
(
'
/test/review/case/list/
all
'
,
this
.
searchParam
,
response
=>
{
this
.
result
=
this
.
$post
(
'
/test/review/case/list/
ids
'
,
this
.
searchParam
,
response
=>
{
this
.
testCases
=
response
.
data
;
for
(
let
i
=
0
;
i
<
this
.
testCases
.
length
;
i
++
)
{
if
(
this
.
testCases
[
i
].
id
===
testCase
.
id
)
{
this
.
index
=
i
;
this
.
getTestCase
(
i
);
this
.
getRelatedTest
();
}
}
});
...
...
@@ -439,9 +439,6 @@ export default {
}).
length
>
0
;
}
},
handleDelete
()
{
}
}
}
</
script
>
...
...
xpack
@
8a972a19
比较
a22a3005
...
8a972a19
Subproject commit
a22a3005d9bd254793fcf634d72539cbdf31be3a
Subproject commit
8a972a198775b3783ed6e4cef27197e53d1ebdc8
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录