Python:如何将测试模块变量传递至日志模块的logresults函数
解决测试用例变量传递给日志函数的问题
你当前的代码存在两个核心问题:一是logresults函数有语法错误,二是它依赖全局变量,跨模块调用时无法正确获取测试用例模块的变量。下面是最直接的解决方案:
1. 修复并改造日志模块
把logresults改为接收参数的形式,不再依赖全局变量,这样任何测试用例都可以传递自己的变量进去。
假设日志模块文件名为log_utils.py,修改后的代码:
def logresults(testcase, testresult, successmessage, errormessage): print(f"Test Results for {testcase}") if testresult == 0: print(f"{testcase} Passed with: {successmessage}") else: print(f"{testcase} Failed with: {errormessage}")
2. 修改测试用例模块
在测试用例模块中导入日志模块,调用logresults时把当前模块的变量作为参数传递进去。
以TC1.py为例:
# 导入日志工具模块 import log_utils testcase = "Test Case 1" successmessage = "Specific Success Message for Test Case 1" errormessage = "Specific Error Message for Test Case 1" # 假设此处已定义pageLoaded和pageExpected的实际值 pageLoaded = "target_page" pageExpected = "target_page" # 运行测试并传递参数 if pageLoaded == pageExpected: testresult = 0 log_utils.logresults(testcase, testresult, successmessage, errormessage) else: testresult = 1 log_utils.logresults(testcase, testresult, successmessage, errormessage)
3. 主模块保持不变
主模块依然正常导入测试用例模块即可:
import TC1 import TC2
补充说明
如果测试用例数量较多,也可以考虑把每个测试用例封装成类,将测试信息作为类属性,logresults作为类方法,但直接传递参数是最轻量化、适合当前场景的方案,能快速解决跨模块变量传递的问题。
内容的提问来源于stack exchange,提问作者Squoggle
相关产品推荐
相关产品推荐

