各コミット後に単体テストを実行する最良の方法は?- svn - 機能ごとのブランチ
-
01-07-2019 - |
質問
各コミット後に一連の単体テストを実行する最善の方法は何ですか?
私が特に興味があるのは、すべての機能/変更をブランチで実行し、トランクを安定に保つケースです。
私のソース管理は SVN で、クライアントとして Tortoise SVN を使用しています。
.cmd/.bat ファイルと呼ぶことができる SVN イベントなどはありますか?
答えがクルーズコントロールである場合、クルーズコントロールを備えたすべてのブランチをどのようにチェックしますか?
解決
おそらく単体テストを実行する必要があると思います 前に コミット。コミットごとにテストする場合は、互換性を破る変更を拒否するのに十分な早めにテストを実行する必要があります。
これを行うことができます 破壊フック. 。を追加すると、 pre-commit
フックを使用すると、コミットが発生する前にビルド/テストを実行できます。フック スクリプトはサーバー上で実行されます。
他のヒント
CruiseControl のような継続的統合サーバーが必要です。これにより、SVNが変更のためにSVNを監視し、火災がコミットに基づいており、テストスイートの実行でフォローアップし、システムトレイ(または電子メールまたは快適な電子メールなど)に直接フラグを立てます。プロジェクトのニーズを定義する小さなスクリプト(主にXML)。推奨..一度味わったら戻れません。これは私が昔に設定したものです
アップデート:すべてのブランチをグローバルにチェックするタイプの設定はないと思います。各ブランチは異なるトランク URL である必要があります...つまり、CruiseControl とは別のプロジェクトになります。Subversion 分岐の推奨方法 (ここを参照してください)、CruiseControl自体はSubversionのブランチを使用しているようなので。これが進むべき道のようです。
自動化されたビルド/デプロイメントプロセスもセットアップします。Cruise Control をチェックしてください。展開する前に単体テストを実行できます。
使用 ビルドボット.
これには、Subversion のコミット後のスクリプトから呼び出すことができる svn_buildbot.py というユーティリティがあります。
Buildbot は (他の多くの VC システムと同様に) Subversion から離れているため、コミットしたブランチから新しいリビジョンをプルするように構成できます。また、ステータスを確認し、特定のリビジョン/ブランチでビルドを強制するための電子メール通知と Web インターフェイスも提供します。