Vector 在 CANoe 安装目录下提供了一个 Python 调用示例,路径通常类似:
C:\Users\Public\Documents\Vector\CANoe\Sample Configurations 14.0.83\Programming\Python
这个示例能帮你快速体验用脚本自动化控制 CANoe 工程、执行测试模块。下面看看它是怎么跑的,再拆解代码,最后聊聊实际项目里怎么改造。
运行示例
打开那个文件夹,直接在地址栏输入 cmd 回车,省得切来切去。

在命令行里敲 python RunAllTests.py:

回车后,脚本会依次启动 CANoe、加载工程、执行测试用例,同时在 cmd 窗口打印进度。

这期间 CANoe 主窗口会自动弹出,并运行两种测试:TestModule(CANoe 原生测试脚本)和 TestUnit(vTESTstudio 开发的脚本),你可以看到下图效果。

代码结构
脚本主要围绕 5 个类组织,功能很正交:
- CanoeSync:与 CANoe 通信的核心,负责打开工程、控制启停、执行测试。
- CanoeMeasurementEvents:回调类,监听 CANoe 运行状态变化。
- CanoeTestModule / CanoeTestConfiguration:分别封装 TestModule 和 TestConfiguration,并绑定事件。
- CanoeTestEvents:回调类,监听单个测试的开始与停止。
下面挑主干代码讲。
CanoeSync —— 一切操作的入口
初始化时做了三件事:设置循环等待标志、把测量状态事件绑定到 CanoeMeasurementEvents 上、初始化几个内部变量。
def __init__(self):
self.Running =
.WaitForStart = : ...
.WaitForStop = : ...
WithEvents(.App.Measurement, CanoeMeasurementEvents)


