克雷格提到的確有MATLAB在R2013a推出了一個框架。 ,該框架在R2014a中添加了一個TAPPlugin,輸出Test Anything Protocal。使用該協議,您可以用TAPPlugin(例如。 Jenkins,TeamCity),這樣如果測試失敗,CI系統可能會失敗構建。
你的CI版本可能看起來像一個shell命令來啓動MATLAB和運行所有測試:
/your/path/to/matlab/bin/matlab -nosplash -nodisplay -nodesktop -r "runAllMyTests"
然後runAllMyTests創建一套運行,並與抽頭輸出重定向到一個文件中運行它。你需要在這裏調整細節,但或許這可以幫助你開始:
function runAllMyTests
import matlab.unittest.TestSuite;
import matlab.unittest.TestRunner;
import matlab.unittest.plugins.TAPPlugin;
import matlab.unittest.plugins.ToFile;
try
% Create the suite and runner
suite = TestSuite.fromPackage('packageThatContainsTests', 'IncludingSubpackages', true);
runner = TestRunner.withTextOutput;
% Add the TAPPlugin directed to a file in the Jenkins workspace
tapFile = fullfile(getenv('WORKSPACE'), 'testResults.tap');
runner.addPlugin(TAPPlugin.producingOriginalFormat(ToFile(tapFile)));
runner.run(suite);
catch e;
disp(e.getReport);
exit(1);
end;
exit force;
編輯:我用這個主題作爲new developer oriented blog的firsttwo帖子今年
是的,最後。 R2013開始成爲專業軟件開發的真正平臺,而R2014變得更加完善。基本的配置管理也是一個很好的補充。回到2011年,這個問題嚴重失蹤,很高興他們趕上了。 – Adriaan
我也嘗試在simulink模型上設置單元測試,並使用matlab.unittest框架,使用上面的例子我得到一個tapFile與testresults,但也想導出覆蓋信息,我從運行cvsim從測試。 任何想法? – Otzen