ソースコントロールにある以前のバージョンのソフトウェアでユニットテストを実行するツールはありますか? アイデアはバグが浮かび上がっていたので、私は新しいテストを書いて、ソフトウェアがそれぞれのバック・バージョンをソース・コントロールからチェックアウトし、テストがもう失敗しなくなるまでまたは私達は最初に達する。ソース管理の履歴バージョンに関する探偵ユニットテスト
私たちは転覆を使っていますが、このようなことが一般的に存在するかどうか不思議です。
ソースコントロールにある以前のバージョンのソフトウェアでユニットテストを実行するツールはありますか? アイデアはバグが浮かび上がっていたので、私は新しいテストを書いて、ソフトウェアがそれぞれのバック・バージョンをソース・コントロールからチェックアウトし、テストがもう失敗しなくなるまでまたは私達は最初に達する。ソース管理の履歴バージョンに関する探偵ユニットテスト
私たちは転覆を使っていますが、このようなことが一般的に存在するかどうか不思議です。
Mercurialにはbisectというコマンドが組み込まれており、基本的には探しているものを実行します。
これはユーザー作成のスクリプトで動作するように設計されていますが、一言で言えば、スクリプト(ユニットテストを実行するスクリプト)は、チェックアウトされたリビジョンが "合格"または "失敗"これに基づいて、バグが導入されたリビジョンが見つかるまで履歴を移動します。
私はこのようなツールがSVN用に存在するかどうかはわかりませんが、私はMercurialでbisectを見つけました。この種のものには非常に便利です。
バージョン管理システムのほとんどは、特定のバージョンのビルド全体をチェックアウトすることができます。ビルドの特定のファイルの履歴/変更を追跡することができます。
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の場合)または選択したスクリプト言語で。
Mercurialの中バイセクト(とGitは)各バックバージョンをckeckingのを除いて、まさにこのジョブを実行する - それが問題の原因が速く
見つけました