如何将 Matlab 的退出状态返回到 Jenkins 控制台输出?

亨奇

到目前为止,我已经尝试使用Jenkins来触发matlab并做了一些测试。但是我想让Jenkins知道如果我们在matlab测试中出现了一些错误,并与Jenkins进行通信。所以控制台输出将失败。

Matlab 版本:2016b

所以我把 exit(1) 放在 matlab 脚本的最后一行。但是 Jenkins 控制台输出仍然显示成功。我在批处理命令行中使用 %errorlevel%,结果是 0 不是我所期望的。

我一开始就尝试使用 Start /wait。因为我使用的是 Windows 10。但没有帮助。

下面是我的 Jenkins 批处理命令:

start /wait matlab.exe -wait -r -sd "D:\matlab" MyScript;exit -logfile OutputPrint.txt echo ExitCode is %errorlevel%

我希望如果测试管理器中的某些测试用例没有通过。它可以通知Jenkins并且控制台输出将失败。

在此先感谢您的帮助!

约里克

似乎在 R2019a 中引入了对从 matlab 提供退出或错误状态的官方支持。我这样说,因为我在R2019a的在线参考中看到了它,但在R2018b中却没有:

https://www.mathworks.com/help/releases/R2019a/matlab/ref/quit.html
vs
https://www.mathworks.com/help/releases/R2018b/matlab/ref/quit.html

但是,当我尝试并且不提供“强制”输入时,它似乎适用于旧版本的 matlab,例如 R2016b:

"C:\Program Files\MATLAB\R2016b\bin\matlab.exe" -wait -r "exit(10)"
echo %ERRORLEVEL%

这给了我 10,这是我的预期。在您的代码中,我看到一些可能会产生问题的事情。我建议从我的代码中的一些简单开始,然后在必要时添加其他组件并验证错误级别仍然正常。

  1. 我看到您正在使用 start,这可能会阻止退出代码到达 Jenkins
  2. 我懂了
    -r -sd "D:\matlab" MyScript;exit

因为要执行的命令应该直接在 -r 之后,我想你的意思是:

    -sd "D:\matlab" -r MyScript;exit
  1. 最后因为matlab命令后面的命令“echo”,错误级别将来自echo命令。因此,如果您希望 Jenkins 从 MATLAB 命令中获取错误级别,但您确实想在 matlab 之后运行某些内容,则可能应该将其捕获在一个单独的变量中并在退出脚本之前“重置”错误级别,例如:
"C:\Program Files\MATLAB\R2016b\bin\matlab.exe" -wait -r "exit(10)"
SET MATLABERROR=%ERRORLEVEL%
echo ExitCode is %ERRORLEVEL%
SET ERRORLEVEL=%MATLABERROR%

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将 stdin 返回到控制台?

jenkins 作业控制台输出如何工作?

如何在Jenkins控制台输出中隐藏密码?

如何分析触发的jenkins作业的控制台输出数据?

将输出重定向到文件,然后返回到C ++中的控制台

将系统控制台输出返回到用户界面

将Jenkins控制台输出作为HTML电子邮件发送

将Jenkins作业构建的日志文件/控制台输出存储在dreamhost中

如何将这些JSON对象返回到浏览器而不是控制台

如何将printf()重定向到文件,然后再返回到控制台

带有Jenkins的xUnit:如何在构建控制台输出中显示颜色?

如何使用自定义的果冻脚本循环遍历Jenkins中的控制台输出?

远程触发构建后如何获取Jenkins的“控制台输出”?

在使用Python脚本执行期间如何读取Jenkins管道控制台输出?

如何查看本地文件系统上的Jenkins服务器控制台输出?

Jenkins控制台输出格式

如何在Matlab中将控制台输出分配给字符串?

批处理:使用正则表达式将匹配的行从管道的输出返回到控制台

如何将控制台输出写入txt文件

如何将gulp结果输出到控制台?

如何将javascript变量输出到控制台?

如何将ASCII Art输出到控制台?

如何将控制台输出存储到文件

如何将项目列表从linq返回到sql查询并在控制台应用程序中调用

如何将事件通知返回到Java控制台应用程序的主程序类?

如何在C#中返回Postgresql函数的结果?控制台输出为空

如何返回 url 中的所有“a”标签并使用 jQuery 将它们输出到控制台?

MEX:如何将矩阵从C ++ / C返回到MATLAB

如何从控制台的“ vim -y”退出?