我需要自动化测试,作为 Jenkins 管道的一部分。测试本身在 MATLAB 中进行,有 5 个阶段,每个阶段以将值设置为整数(
uint16_t
和 uint8_t
)并存储消息结束。我必须将这 5 个整数和 5 个字符串传递给 PowerShell 脚本,因为 Jenkins 只能运行 PowerShell 和 Python 脚本,而不能运行 MATLAB。我不完全确定如何才能实现这一目标。 Internet 上关于如何使用 PowerShell 运行 MATLAB 脚本的信息并不多,当然比相反的方法要少得多。 (也许我应该检查运行 MATLAB 脚本的批处理文件脚本。)
到目前为止,我发现的唯一选择是使用 MATLAB 写入临时文件,然后从中读取(并删除它),就像 .txt 或 .csv 文件一样,但这不太可行。谁能建议其他方法来更直接地传递它? MATLAB 文件不是函数,但可以将其制成输出这些变量的函数。另外,如果将整数转换为另一种整数类型也很好。
就像@TesselttingHeckler 所说的那样,方法是
$results = matlab.exe yourscript
。
如果您在启动测试时想要更多功能,例如无显示窗口、以批处理模式运行或等待 matlab 执行结束,这里有一个示例。
runTestMatlab (){
result=$(matlab.exe -wait -nosplash -noFigureWindows -batch TestScript.m)
if [ $? -ne 0 ]; then
# Error with the Matlab run
echo $result
return 1
fi
echo "$result"
return 0
}
然后您可以使用 awk 或任何其他您想要的工具解析结果。