Skip to content

Commit a502228

Browse files
committed
bug fix
1 parent 073e2f1 commit a502228

2 files changed

Lines changed: 18 additions & 6 deletions

File tree

‎pytest/src/testsolar_pytestx/conftest_generator.py‎

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,21 @@
3131
initialize_header_injection,
3232
set_current_test_nodeid,
3333
)
34+
from testsolar_pytestx.converter import normalize_testcase_name
3435
3536
# 在模块导入时就初始化,确保在 httpx 被导入之前完成 patch
3637
initialize_header_injection()
3738
39+
def pytest_runtest_setup(item):
40+
"""在每个测试开始前设置 nodeid"""
41+
testcase_name = normalize_testcase_name(item.nodeid)
42+
testcase_class_name = testcase_name.split("?", 1)[-1]
43+
set_current_test_nodeid(testcase_class_name)
44+
45+
def pytest_runtest_teardown(item):
46+
"""在每个测试结束后清除 nodeid"""
47+
set_current_test_nodeid(None)
48+
3849
except ImportError:
3950
# testsolar_pytestx 未安装,跳过
4051
pass

‎pytest/src/testsolar_pytestx/executor.py‎

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,8 @@
3737
from .filter import filter_invalid_selector_path
3838
from .parser import parse_case_attributes
3939
from .stream import pytest_main_with_output
40-
from .header_injection import set_current_test_nodeid
40+
41+
# from .header_injection import set_current_test_nodeid
4142
from .conftest_generator import generate_conftest_for_header_injection
4243

4344

@@ -77,9 +78,9 @@ def pytest_runtest_logstart(self, nodeid: str, location: Any) -> None:
7778
# 设置当前测试用例的nodeid到上下文
7879
# 注意:这里使用处理后的 testcase_class_name,与 conftest.py 中的格式可能不同
7980
# conftest.py 中使用原始 nodeid,这里使用处理后的名称
80-
if should_enable_header_injection():
81-
testcase_class_name = testcase_name.split("?", 1)[-1]
82-
set_current_test_nodeid(testcase_class_name)
81+
# if should_enable_header_injection():
82+
# testcase_class_name = testcase_name.split("?", 1)[-1]
83+
# set_current_test_nodeid(testcase_class_name)
8384

8485
test_result = TestResult(
8586
Test=TestCase(Name=testcase_name),
@@ -226,8 +227,8 @@ def pytest_runtest_logfinish(self, nodeid: str, location: Any) -> None:
226227
self.testdata.pop(testcase_name, None)
227228

228229
# 清除当前测试用例的nodeid
229-
if should_enable_header_injection():
230-
set_current_test_nodeid(None)
230+
# if should_enable_header_injection():
231+
# set_current_test_nodeid(None)
231232

232233
logger.info(f"E {nodeid} runtest_logfinish")
233234

0 commit comments

Comments
 (0)