ASP.NET MVC 4.5 プロジェクトがあります。何ヶ月もの間、開発マシンと TeamCity 7.1.5 マシンでローカルにコンパイルされ、すべての単体テストがパスされました。月曜日に、一部の依存関係の新しいバージョンに更新しました (具体的には、select-expand 用の OData 5.0.0-rc1 を取得するため)。
プロジェクトは、開発マシンとビルド マシンで正常にコンパイルされます。開発マシンと、展開先の両方の QA 環境で正常に動作します。すべての単体テストは、開発マシンでパスします。ただし、MSTest ビルド ランナーを使用して TeamCity から実行すると、単体テストの約半分 (~300) が失敗し、すべて同じ無用のエラーが発生します。
Unit Test Adapter threw exception:
Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.
私は考えられるすべてを試しました。最初は、正当な問題があると考えました。TeamCity から LoaderExceptions プロパティを取得する方法がないため (なぜ MSTest は詳細情報を表示しないのですか!?!?)、TeamCity が実行されているマシンにログインし、コンソールを開き、作業ディレクトリに変更しました。プロパティを取得できるように、ビルドを実行し、テストを手動で実行しました。すべてのテストに合格しました! その説はありますが…
グーグルで丸一日過ごし、StackOverflow で他の回答を読んだ後、次の手順のさまざまな組み合わせを約 20 種類試しました。
- ビルドを「再構築」から「クリーン」に変更し、テストなしで実行してクリーンアップするだけにし、元に戻して再度実行します。
- ビルドを「デバッグ」から「リリース」に変更し、それを実行して、再び元に戻します。
- TeamCity 管理ページからのエージェント ソースのクリーニング。
- エージェントから作業ディレクトリ全体を手動で削除し、ごみ箱をスキップして、冥界に直行します。
- すべてのソース管理 (TFS) キャッシュを削除すると、ビルド マシンとエージェントから除外されます。
- ソース管理から最新のものを取得する前に、TeamCity に作業ディレクトリをクリーンアップするように指示します。
トラブルシューティング機能の限界に達しました。テストはビルド マシン上で実行されなくなります。明らかに理由はありません。
私に何ができる?一体何が起こっているのですか?