2009-02-01 109 views
2

我想寫一個小的工具來支持代碼覆蓋範圍我們在我公司運行的測試。編寫一個工具來支持代碼覆蓋測試

這裏是我的工具要求 -

輸入 - 文件列表(的.cpp和.h),它已被修改(爲簽入的變更表的一部分)

輸出 - 在源中添加或修改的所有功能(作爲檢入更改的結果)。

任何想法我可以怎麼做呢?基本上,它歸結到什麼線改變的,什麼是與改線相關的功能...

更多信息 - 源控制:Perforce的 平臺:視窗

回答

2

這聽起來很棘手。我不確定你會如何處理源代碼中已更改函數的信息。您不希望將代碼覆蓋範圍限制爲這些函數:可能是因爲更改後的函數會影響未更改函數的覆蓋範圍。

也許最好的辦法是簡單地在每次登記時運行所有測試,或者如果有任何更改,則每小時運行一次。那麼你可以跳過複雜的工具創建,並且無論如何都有更好的結果。

0

由於所有文件都被檢入到Perforce中,因此您可以使用以前的版本對已更改的文件執行批處理diff(p4 diff2)。 p4 diff2也採用分支規格,這可能是更方便的方法。

找到差異時,您需要編寫一個腳本來提取已更改行的方法名稱。該算法可能是「在文件中向後搜索,直到找到語法的方法簽名」。

要聰明,根據文件名或其他腳本生成的類的列表來確定類名。這個類名列表可以有助於確定方法簽名。如你所知,類名跟在::和方法名之後。

我認爲這個算法很容易使95 +%準確,並且很難使任意輸入100%準確。

此腳本應排除重複以生成唯一列表。

結果列表是您在問題中請求的列表。