Matlab 在 2013a 中有一个奇特的新单元测试框架。我发现它很有帮助,但随着我的模块的增长,我想知道我已经实现了多少覆盖率。我如何衡量我的单元测试覆盖率,类似于 coverity 等人的做法?
最佳答案
2014b 版提供了一个 plugin生成代码覆盖率报告。例如:
import matlab.unittest.TestRunner;
import matlab.unittest.TestSuite;
import matlab.unittest.plugins.CodeCoveragePlugin;
% Create a TestSuite array
suite = TestSuite.fromFolder(testFolder);
% Create a runner and add the code coverage plugin
runner = TestRunner.withTextOutput;
runner.addPlugin(CodeCoveragePlugin.forFolder(sourceFolder));
% Run the suite. This opens a code coverage report when done testing.
result = runner.run(suite)
请注意,覆盖率报告应该在您的源代码上运行,而测试套件是从一个单独的文件夹生成的。如果您像链接示例中那样使用 pwd
,您将获得刚刚运行的测试的覆盖率报告。
关于Matlab 单元测试覆盖率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16424962/