编辑:现在使用MATLAB 的 Jenkins 插件变得更加容易并且越来越容易
原始答案:
正如 Craig 提到的,R2013a 中确实有一个在 MATLAB 中引入的框架。此外,该框架在 R2014a 中添加了一个TAPPlugin,它输出Test Anything Protocal。使用该协议,您可以使用 TAPPlugin(例如Jenkins、TeamCity )设置您的 CI 构建,以便在测试失败时 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;
编辑:我将此主题用作今年推出的面向开发人员的新博客的前 两篇文章