非常に大規模なVisualStudioソリューションのテストの開発と整理を始めています。(はい、プロジェクトがほぼ完了したときではなく、コードと一緒にテストを開発する必要があることを私は知っていますが、物事はそれらが何であるかです。)
Visual Studioソリューションでの単体テストの編成について同様の質問を見てきましたが、統合テストに対応する質問も見当たりませんでした。すでに大きなコードベースを乱雑にしないように、テストプロジェクトを配置する場所についてのガイダンスをいただければ幸いです。
ソリューション内の基本的な階層は次のとおりです。(.projで終わらないすべてのアイテムは、プロジェクト内のフォルダーまたはソリューションフォルダーです。)
- HardwareServices
- HardwareService1
- HardwareService1.Core.proj
- HardwareService1.Host.proj
- HardwareService1.Service.proj
- HardwareService2
- HardwareService2.Core.proj
- HardwareService2.Host.proj
- HardwareService2.Service.proj
- HardwareService1
- インフラストラクチャー
- MyApp.Database.proj
- MyApp.Infrastructure.proj
- MyApp.ReportViewer.proj
- MyApp.SettingsManager.proj
- AppModules
- AppModule1.proj
- 一般
- レポート
- サービス
- ViewModels
- ビュー
- AppModule2.proj(他のAppModuleと同様の構造)
- AppModule3.proj(他のAppModuleと同様の構造)
- AppModule1.proj
- モジュール
- ComputeEngine.proj
- Footer.proj
- Header.proj
- CommonServices.proj
私の考えは、「テスト」と呼ばれるソリューションフォルダーを作成し、上記の階層を模倣して、本番コードプロジェクトごとに1つのテストプロジェクトを作成することでした。各テストプロジェクト内に、「UnitTests」および「IntegrationTests」というフォルダーを作成します。
私の焦点は、新しいテストをどこに置くべきか、そして既存のテストをどこで見つけるかについて曖昧さがないように、一貫した命名/編成スキームを作成することです。このプロジェクト/アプリケーションのサイズが大きいことを考えると、後で苦痛を感じないように、構造をゲートからすぐにしっかりと整えたいと思います。
お手数をおかけしますが、よろしくお願いいたします。