2017-08-11 24 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