自動化されたテストは、リアルタイムのプロジェクトの状態を反映するために高速でなければなりません。アイデアは次のとおりです。
- リポジトリ自動ビルドへのコミットが実行された後 (可能な限り速く)。
- ビルドが成功すると、自動テストが開始されます。高速である必要があります。
これは、あなたの変更が何かを壊すかどうかを知るための私が知っている最良の方法です.
最初はビルドを高速化するのは難しいと思われましたが、100 秒程度に抑えることができました。105(!) プロジェクトのソリューション (MSVS 2008 C#)。
テストはそれほど単純ではないように見えました (NUnit FW を使用しています)。単体テストは大きな問題ではありません。私たちを殺すのは統合テストです。そして、それらが遅いという事実ではなく(それらをより速くする方法に関するアイデアは大歓迎です)、環境をセットアップする必要があるという事実は、はるかに遅い(atm〜1000秒)です!
私たちの統合テストでは、最新の変更を反映するために再デプロイする必要がある web/win サービス (これまでのところ 19 個) を使用しています。これには、サービスの再起動と多くの HDD R/W アクティビティが含まれます。
自動化されたテスト フェーズを短縮するために、環境とワークフローをどのように整理/最適化する必要があるか、どのように最適化できるかについて、誰でも経験を共有できますか。「低レベル」のボトルネックと回避策は何ですか。
PS の書籍や広範な記事は歓迎されますが、実際の作業ソリューションはより高く評価されます。