2017-08-11 65 views
1

我在MATLAB中使用单元测试。我如何验证我的测试是否至少执行一次底层函数/类的每一行?是否有可能使用timeit函数?什么是最佳做法?MATLAB:单元测试:确保每行测试

+0

MATLAB的单元测试框架提供了[代码覆盖功能](https://www.mathworks.com/help/matlab/ref/matlab.unittest.plugins.codecoverageplugin-class.html) – excaza

+0

代码覆盖率是关键词I正在寻找。谢谢。 – Andi

回答

2

UPDATE

More functionality与R2017b。

/UPDATE

@ excaza的评论是点上,你可以利用CodeCoveragePlugin生成感兴趣的源代码的代码覆盖率报告。

但是,我应该警告,使用代码覆盖范围来确定测试套件是否充分测试了每行代码,这可能是思考代码覆盖的错误方法。什么代码覆盖面是好的是告诉你你知道什么不被覆盖。因此,如果您在源代码中看到一条未覆盖的行,则应该为该行添加至少一个测试。然而,重要的是要注意,如果你看到一条被覆盖的线,并不意味着该线是正确的,或者它甚至有专门测试该线的测试。这可能是由于另一个测试隐含了这条线,并且它可能不会产生正确的结果。确定所涵盖的代码实际上是明确测试的,这是一个更好的目标,但也更复杂。

祝你好运!

+0

你是绝对正确的。但是,我的第一个目标是查找尚未被覆盖的代码行。 – Andi