我在GitLab中有一个很大的Matlab项目存储库,并且正在GitLab CI中进行一些自动化测试。 ,当我推送时,尽管它确实启动了新管道并启动了我的批处理文件,但它似乎并没有运行Matlab的实例,因此该过程会无限期地陷入困境。 (跑步者在Windows计算机上)
首先,.gitlab-ci.yml:
stages:
- test
before_script:
- cd
- cd testing
- cd
main_test:
stage: test
script: run_unit_tests.bat
又好又简单。 接下来,批处理文件:
@echo off
for /F "tokens=2" %%i in ('date /t') do set mydate=%%i
set mytime=%time%
echo ..
echo Current time is %mydate%:%mytime%
echo ..
echo %ERRORLEVEL%
matlab -nosplash -nodesktop -minimize -wait -logfile "automatic_tests_log.txt" -r "run('run_main_unit_testing.m')"
echo ..
type "automatic_tests_log.txt"
echo ..
echo %ERRORLEVEL%
(%ERRORLEVEL%检查可以帮助跟踪一些排除非零错误代码的故障。但是现在已经解决了。)
结果: 管道启动并开始正常运行。报告了三个cd命令后,我们得到:
$ run_unit_tests.bat
..
Current time is 10/12/2018:20:03:39.18
..
0
. . .
最后一个省略项是GitLab“进行中”动画。基本上,它永远不会启动Matlab;等待批处理脚本中的matlab命令时卡住了。 (我已经等了30分钟。这个过程很慢,但并不慢。)当我直接从命令行运行相同的批处理脚本时,它可以正常工作,大约需要1-2分钟。
有什么想法我要去哪里吗?
答案 0 :(得分:0)
您需要退出matlab: matlab -nosplash -nodesktop -minimize -wait -logfile“ automatic_tests_log.txt” -r“ run('run_main_unit_testing.m'); 退出”