Skip to content

Commit 15c538b

Browse files
author
wuranxu
committed
修复报告不能正确获取错误截图的问题
1 parent 2ad120e commit 15c538b

4 files changed

Lines changed: 12 additions & 11 deletions

File tree

result/generator.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ def generate(result, startTime):
3434

3535
for case in test_cases:
3636
case_id = case.get("case_id")
37+
case_pic = case.get("case_id") + "_" + case['case']._testMethodName
3738
_case = case.get("case")
3839
msg = case.get("msg")
3940
msg = msg[1].__str__() if msg and case["type"] != "info" else msg
@@ -50,7 +51,7 @@ def generate(result, startTime):
5051
case_des = "登录初始化模块"
5152
else:
5253
case_des = getattr(getattr(_case, case_name), "__doc__")
53-
test_cases_list.append((case_id, suite, status, msg, case_des))
54+
test_cases_list.append((case_id, suite, status, msg, case_des, case_pic))
5455
# 通过case_id排序
5556
# test_cases_list = sorted(test_cases_list, key=lambda x: x[0])
5657
total_test = len(test_cases_list)

templates/report_template.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ <h2 class="text-capitalize">{{ title }}</h2>
158158
{% if case[2] != 'success' and case[2] != 'info' %}
159159
{% if conf.screenshot %}
160160
<td><a class="ant-btn ant-btn-sm screenshot"
161-
title="data:image/png;base64,{{ conf.screenshot.get(case[0]) }}"
161+
title="data:image/png;base64,{{ conf.screenshot.get(case[5]) }}"
162162
type="button">screenshot</a>
163163
{% if "success" not in case[2] %}
164164
&nbsp

tests/Example/Search.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,14 @@ def test_haha(self):
1414
main = Index(self.driver)
1515
main.search_dragonball_super()
1616
# 断言
17-
self.assertEqual("龙珠超 - 国内版 Bing", self.driver.title,
17+
self.assertEqual("龙珠超2 - 国内版 Bing", self.driver.title,
1818
"bing搜索'龙珠超'后页面标题与预期不符")
1919

2020
@screenshot
2121
def test_dragon_ball_z(self):
2222
"""搜索龙珠超 case2"""
2323
# 断言
24-
self.assertEqual("龙珠超2 - 国内版 Bing", self.driver.title,
24+
self.assertEqual("龙珠超22 - 国内版 Bing", self.driver.title,
2525
"bing搜索'龙珠超'后页面标题与预期不符")
2626

2727

util/decorator.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -57,17 +57,17 @@ def generate_bs64(filename):
5757
return b64
5858

5959

60-
def update_pic_info(case_id, filename):
60+
def update_pic_info(case_id, test_func, filename):
6161
if hasattr(Config, "screenshot"):
62-
getattr(Config, "screenshot").update({case_id: generate_bs64(filename)})
62+
getattr(Config, "screenshot").update({case_id + "_" + test_func: generate_bs64(filename)})
6363
else:
64-
setattr(Config, "screenshot", {case_id: generate_bs64(filename)})
64+
setattr(Config, "screenshot", {case_id + "_" + test_func: generate_bs64(filename)})
6565

6666

67-
def screen(driver, func, case_id):
67+
def screen(driver, func, case_id, test_func):
6868
t = Tools(driver)
6969
filename = t.get_pic(func.__name__, case_id)
70-
update_pic_info(case_id, filename)
70+
update_pic_info(case_id, test_func, filename)
7171

7272

7373
def pic(*params):
@@ -113,7 +113,7 @@ def wrapper(*args, **kwargs):
113113
Log.warning("{}_{}用例第{}次失败: {}".format(
114114
args[0].__class__.__name__, params[0].__name__, i, error.__str__()))
115115
else:
116-
screen(driver, params[0], case_id)
116+
screen(driver, params[0], case_id, args[0]._testMethodName)
117117
if isinstance(error, AssertionError):
118118
assert 0, "错误信息: {}".format(str(error))
119119
else:
@@ -134,7 +134,7 @@ def wrapper(*args, **kwargs):
134134
error = e
135135
Log.warning("{}_{}用例运行失败: {}".format(
136136
args[0].__class__.__name__, func.__name__, error.__str__()))
137-
screen(driver, func, case_id)
137+
screen(driver, func, case_id, args[0]._testMethodName)
138138
if isinstance(error, AssertionError):
139139
assert 0, "Info: {}".format(str(error))
140140
else:

0 commit comments

Comments
 (0)