2012-01-19 25 views
3

是否有一種工具可以運行源代碼管理中以前版本軟件的單元測試? 這個想法會浮出水面,我想知道它什麼時候推出,所以我編寫了一個新的測試,軟件從源代碼控制中檢查每個後退版本,在每個測試上運行測試,直到測試不再失敗或者我們到達開始。源代碼管理中的歷史版本中的偵探單元測試

我們使用顛覆,但我很好奇這樣的事情是否存在一般。

回答

3

Mercurial有一個名爲bisect的內置命令,基本上可以做你正在尋找的東西。

它被設計爲與用戶編寫的腳本一起工作,但簡而言之,它執行二進制搜索,腳本(運行單元測試)會告訴對分,如果檢出的版本「通過」或「失敗」以及基於它在歷史中移動,直到找到引入錯誤的版本。

我不確定SVN是否存在這樣的工具,但是我發現它與Mercurial一分爲二,對於這類事情非常有用。

1

幾乎任何版本控制系統都可以讓您查看整個構建的特定版本。並讓您跟蹤構建的任何特定文件的歷史記錄/更改。

通常情況下,我只取一個簡單的「分而治之」的辦法:

a) Check out a really old version into a scratch directory 

    b) Build and confirm it DOESN'T have the bug 

    c) Manually compare the old and current versions and make "educated guesses" as to "what changed". 

    d) Check out a version between the old and current version (based on what I found in step c). 

    e) Build and test. 

    f) If it has the bug, check out version between a) and d). 

    If it doesn't have the bug, check out a version between d) and the current. 

    g) Rinse and repeat 

是的,部分或全部的這當然可以照本宣科。

在bash中(如果你在Linux上)或者你選擇的腳本語言。

3

平分的水銀(和Git)執行的正是這種工作,除了ckecking 每個背版的 - 它發現的問題根源更快

相關問題