誰かが次のロジックで動作するSVNプリコミットフックに出くわしたことはありますか?対応するテストクラスにも変更をチェックするSVNフック
"MyClass.java"が変更されコミットされている場合は、命名規則に従って "MyClassTest.java"を変更する必要があります。
ここでの目標は、開発者がコードを変更したときに、対応する単体テストに変更を加えたことを確認することです。
これは、ちょっとした書式設定を変更することで騙される可能性があることは分かっています。しかし、目標は不正行為をやめることではありません。それは、それに移行しているチームのテスト駆動開発を強く奨励することです。
変更が単なるリファクタリングの場合、送信コメントに「REFACTOR」という単語が含まれているかどうかを確認するために、フックがチェックを無視することができます。 (純粋なリファクタは常に自分自身でコミットする必要があります)
これは少し制限があるようです。コードをリファクタリングしているだけで、新しいテストは必要ない場合はどうなりますか?または、テストを追加するだけの場合はどうなりますか? –
新しいテストを追加することは重要ではありません。リファクタリングに関しては、おそらく、オーバーライドが必要です。例:コミットコメントに「REFACTOR」という単語が含まれている場合は、テストチェックを行わないでください。 – Patrick
@Alexandreに何を追加するか、インターフェイスを変更するとどうなりますか?あなたは Test.javaテストを持っていますか? SVNコミットフックを満足させるだけのインターフェースをテストするのは残念です。私たちはTDDを多く使用しています。すでに多くのテストを行っているコードをリファクタリングすると、コードがすでに100%ユニットテスト済みであるため、リファクタリングすることができます。なぜ私はテストを変更する必要がありますか?テストはすでにコードの100%をカバーしています... –