私はそれをテストしているコードに関連して私のテストコードをどこに置くべきか。
-
19-09-2019 - |
質問
私は考えることができる2つの明白な場所はすぐ隣、私が働いているコードを「テスト」フォルダのいくつかの並べ替えをすることでしょう。だから、何かます:
\project-code
\my-feature
\production-code
\testing
***my tests***
\co-workers-feature
\production-code
\testing
または私はテストコード完全に別の階層を分割できます。だから、何かます:
\project-code
\my-feature
\co-workers-feature
\testing-project-code
\my-feature
***my tests***
\co-workers-feature
私は、フレームワークの多くは第二のアプローチを使用して見てきたが、最近我々は、便宜上、主に生産・コード内で、当社のテストコードを入れてきました。一つのアプローチは、他よりもはるかに優れているか、ここでのベストプラクティスはありますか?
解決
私は2番目のオプションを使用します。それは、必要に応じて、私はテストせずにコードを出荷できることを意味します。また、クラスまたはパッケージを見てから、私はそれのためのユニットテストがどこにあるか知っています。
ここでは、関連する質問です。
他のヒント
それらを置きます。あなたは必要に応じて、最終生成物からそれらを削除するようにビルドシステムを設定することができます。テストは、「ベストプラクティス」です。その有効性を低下させることなく、テストが容易になりますものは、単にベストプラクティスに向上されます。
私は近いユニットテストを維持することを好みます。私はよくオプション1作業を見てきました。小規模なプロジェクトでは、両方のアプローチはうまく動作しますが、プロジェクトはどんどん大きくなるにつれて、彼らが木の非常に異なる部分に住んでたときにテストを発見し、維持することが困難です。彼らは近づいている場合は、製品コードを変更した場合、それらを変更することは自然なことでしょう。彼らは遠く離れている場合、それはより多くの精神的な努力を取り、多くを無視されます。これは、彼らが同期しなくなることを大きなチャンスを意味します。
あなたがテストディレクトリの条件付きコンパイルすることができますメイクシステムを必要とするこれを行うにことに注意してください。あなたはそれらを毎回構築する必要がありますする必要はありません。あなたはそれを得ることができない場合は、別のツリーが必要になることがあります。
あなたがコントロールするウェブサイトは、それが同じフォルダにそれをすべて持っていて損はしません。あなたがリリースその古典的なソフトウェアは、それはあなたが誤ってあなたが放出する任意の肥大化を起こさないように、ケース2のように、それは別々の持っている良い練習になる傾向がある場合。
私には、最初のオプションは、特にビューのSCMの観点から、より理にかなって:(彼らが必要として)生産コードとテストコードがうまく同期されており、あなたのプロジェクト、あなたのタグやブランチをタグやブランチ場合生産と同じ時間でテストコード(彼らが必要として)。両方の