Я нашел виновника. Проблема, с которой я столкнулся, была связана с попыткой скопировать проект для веб-модульных тестов из одного из репозиториев шаблонов проекта aspnetboilerplate и обновить все ссылки и имена классов, чтобы они соответствовали именам и пространствам имен в решении VS назначения.
Я отправил аналогичный вопрос на учетную запись github aspnetboilerplate. https://github.com/aspnetboilerplate/aspnetboilerplate/issues/5463.
В конечном счете, вот что произошло.
После того же процесса с новым проектом. Я обнаружил, что в файле класса, который по умолчанию будет называться AbpProjectNameWebTestBase.cs
в методе protected override IWebHostBuilder CreateWebHostBuilder()
{
return base
.CreateWebHostBuilder()
.UseContentRoot(ContentRootFolder.Value)
.UseSetting(WebHostDefaults.ApplicationKey, typeof(AbpProjectNameWebModule).Assembly.FullName);
}
, я по ошибке заменил AbpProjectNameWebModule
на AbpProjectNameTestModule
вместо AbpProjectNameWebMvcModule
. Он пытался использовать тестовый проект Application Service Unit в качестве веб-проекта. Поэтому он не смог найти ни один из ссылочных URI и поэтому возвратил httpStatusCode.NotFound
.
После исправления этой ссылки. Я начал получать исключения, относящиеся к методу public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory)
.
Это были такие вещи, как добавление app.UseAuthentication()
и app.UseAuthorization()
, а также необходимость добавления промежуточного программного обеспечения для предоставления ClaimsIdentity и ClaimsPrincipal для context.User. (т. е. app.UserMiddleware<TestAuthenticationMiddleware>()
)
Теперь я могу запустить свои веб-модульные тесты, как в предыдущих версиях.