何らかの理由で、ASP.NETコアコントローラーが別のアセンブリで作成されている場合、クライアントが要求を行うと、TestServerはコントローラーアクションを見つけることができません。(404応答の結果)これはなぜですか。どうすれば回避できますか?再現する手順は次のとおりです。
統合テストの作成については、次のリンクを参照してください。 ASP.NET Coreを使用した統合テスト
Joeyの回答に加えて、このバグを解決するためにAssembly.Load()を呼び出す必要はありません。以下のコードを使用できます。 ServiceHookController
は別のプロジェクトのクラスです。
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc()
.AddApplicationPart(typeof(ServiceHookController).Assembly);
}
MSドキュメントの 前提条件 に従うと、個別のアセンブリのコントローラーが読み込まれます。
私の場合、追加 Microsoft.AspNetCore.Mvc.Testing NuGetパッケージ で問題が修正され、AddApplicationPart
を呼び出す必要がなくなりました。