単体テストが実行されないようにする方法はありますが、失敗した単体テストをチェックすることの価値は何ですか?
簡単な例を使用します:大文字と小文字の区別。現在のコードでは大文字と小文字が区別されます。メソッドへの有効な入力は「Cat」であり、Animal.Catの列挙を返します。ただし、メソッドの目的の機能では大文字と小文字を区別しないでください。したがって、記述されたメソッドが「cat」に渡された場合、Animal.CatではなくAnimal.Nullのようなものを返す可能性があり、ユニットテストは失敗します。簡単なコード変更でこの作業が可能になりますが、より複雑な問題の修正には数週間かかる場合がありますが、単体テストでバグを特定することはそれほど複雑ではありません。
現在分析中のアプリケーションには、「機能する」4年間のコードがあります。ただし、単体テストに関する最近の議論では、コードに欠陥が見つかりました。明示的な実装ドキュメント(大文字と小文字を区別するかどうかなど)、または現在の呼び出し方法に基づいてバグを実行しないコードのみが必要なものもあります。ただし、バグが発生する有効な入力である特定のシナリオを実行する単体テストを作成できます。
誰かがコードを修正できるようになるまでバグを実行する単体テストをチェックインすることの価値は何ですか?
実行されたテストに基づいてビルドが成功したかどうかを判断するために、このユニットテストにignore、priority、categoryなどのフラグを設定する必要がありますか?最終的には、誰かが修正したらコードを実行するために単体テストを作成する必要があります。
一方では、特定されたバグが修正されていないことを示しています。一方、ログには何百もの失敗した単体テストがあり、コードチェックインによる失敗と失敗の組み合わせを見つけるのは困難です。