我从 Matlab 的代码覆盖率中收到一个文件“无效”的警告,我想消除该警告。 我可以想到两种方法,但我不知道如何实现其中一种。 我的想法是:
我有一个文件 runTests.m,它导入用于单元测试的 Matlab 代码覆盖率插件:
import matlab.unittest.TestRunner
import matlab.unittest.plugins.CodeCoveragePlugin
import matlab.unittest.plugins.codecoverage.CoverageReport
当我运行测试时,它们都通过了,并且覆盖率报告似乎具有正确的信息,除了一个 App Designer 文件之外。 对于该文件,我收到此警告:
Warning: Coverage result is empty for /MyPath/myApp.mlapp because the file is invalid.
如何告诉代码覆盖率插件忽略App Designer .mlapp 文件? 该应用程序可以运行,所以我不知道为什么它无效。 如果我在新的空白应用程序上运行相同的测试套件,则不会出现警告。
其余警告输出为:
In matlab.coverage.internal.ResultBuilder.createFromCodeCoverageCollectorData (line 20)
In matlab.coverage.internal/ResultBuilder/create (line 73)
In matlab.coverage.internal.getResults (line 11)
In matlab.unittest.internal.coverage.CodeCoverageCollector.get.Results (line 65)
In matlab.unittest.internal.plugins.CodeCoverageCollectionPlugin.runTestSuite/assignResultsAndResetProfilerCollector (line 25)
In matlab.unittest.internal.plugins.CodeCoverageCollectionPlugin>@()assignResultsAndResetProfilerCollector(plugin,pluginData.CommunicationBuffer) (line 22)
In onCleanup/delete (line 25)
In matlab.unittest.internal.plugins/CodeCoverageCollectionPlugin/runTestSuite (line 20)
In matlab.unittest.plugins/CodeCoveragePlugin/runTestSuite (line 350)
In matlab.unittest.plugins/TestRunnerPlugin/runTestSuite (line 265)
In matlab.unittest.plugins.xml/JUnitXMLOutputPlugin/runTestSuite (line 66)
In matlab.unittest/TestRunner/evaluateMethodOnPlugins (line 425)
In matlab.unittest.internal/SerialTestRunStrategy/runTestSuite (line 36)
In matlab.unittest.internal/SerialTestRunStrategy/runSession (line 16)
In matlab.unittest/TestRunner/runSession (line 1260)
In matlab.unittest.plugins/TestRunnerPlugin/runSession (line 228)
In matlab.unittest.plugins/CodeCoveragePlugin/runSession (line 345)
In matlab.unittest.plugins/TestRunnerPlugin/runSession (line 228)
In matlab.unittest.plugins.xml/JUnitXMLOutputPlugin/runSession (line 58)
In matlab.unittest/TestRunner/evaluateMethodOnPlugins (line 425)
In matlab.unittest/TestRunner/doRunWithFcn (line 413)
In matlab.unittest/TestRunner/run (line 297)
In runTests (line 55)
看起来
ResultBuilder
对语法错误甚至 mlint 警告非常敏感,再加上 createFromCodeCoverageCollectorData
中报告错误文件名的错误。
就我而言,使用 R2023b update 7 时遇到了问题。如果您可以编辑您的安装,下面的链接建议将
createFromCodeCoverageCollectorData.m
编辑为:
if files(1).status == "FAILED"
warning(message('MATLAB:coverage:result:InvalidFileForCoverage', ...
files(1).path));
end
在工作中,我无法编辑我的安装,因此必须在警告上放置一个断点以检查真实的文件名。
一旦您报告了正确的有问题的文件,那么希望您可以修复您的文件。
就我而言,m 文件中的函数名称错误,这只是 mlint 警告而不是语法错误,但足以触发警告。