如何在cocotb 1.5.2中获取当前运行的测试用例名称
cocotb 1.5.2 单测试用例名称获取实现
你要实现为每个测试用例单独生成报告、绘制图表的工具函数,首先需要在工具逻辑中获取当前运行的测试用例名称。针对cocotb 1.5.2版本,最小可复现示例中的get_test_name函数可按如下方式实现:
import cocotb @cocotb.test() async def my_wonderful_test(dut): print(get_test_name(dut)) def get_test_name(dut): # cocotb 1.5.2 全局回归管理单例持有当前运行态的测试对象 running_test = cocotb.regression_manager._test if running_test is None: raise RuntimeError("无正在运行的测试用例,禁止在测试生命周期外调用该函数") # 未在@cocotb.test()中指定name参数时,返回值即为测试函数名 return running_test.name
运行上述测试用例,控制台会正常输出my_wonderful_test,符合预期。
补充说明
- 该实现仅适配cocotb 1.5.x版本,1.6及以上版本对回归管理器的内部属性做了调整,升级版本后需要对应修改获取逻辑。
- 拿到测试名称后,直接将名称作为报告、图表文件的唯一标识前缀即可,避免不同测试用例的输出文件互相覆盖。
- 如果在
@cocotb.test()装饰器中传入了自定义name参数,running_test.name会返回你自定义的名称,更适合作为测试报告的展示标识。
内容的提问来源于stack exchange,提问作者Bob
相关产品推荐
相关产品推荐

