アプリケーションに自動統合テストを実装しようとしています。非常に複雑なモンスターです。イメージ ファイルをハード ドライブに保存し、DB 内のイメージ ファイルを参照するため、データベースとファイル システムの一部は状態の一部であると言えます。ソフトウェアが適切に動作するには、これらすべてが一貫した状態である必要があります。
テストの作成に戻る: 関連するテストを実行するには、ファイル システムにいくつかの画像ファイルが必要で、データベースに特定のレコードが入力されている必要があります。これらをすべてリポジトリ内の TestEnvironmentData という別のフォルダに入れ、継続的インテグレーション サーバー (Team City) から取得することを考えましたが、同僚から、このままではリポジトリがいっぱいになるので、継続的インテグレーション サーバーのみの特別なディレクトリとデータベース。テストの成功は、サーバー内のものを手動で管理し、すべてのテストが面倒になる前に初期状態を復元することにかかっているため、私はそれが好きではありません。
このようなアプリの統合テストを作成する必要がある場合、皆さんはどうしますか? 主な目標は、大規模なリファクタリングにアプローチするための自動化されたテスト ハーネスを用意することです。多くのスパゲッティ コードがあり、アプリの現在のアーキテクチャは単体テストがほとんどできないため、最初に統合テストを行うことにしました。
代替アプローチは大歓迎です。