Ошибка 301 (перенесено постоянно). Интеграционные тесты ASP.NET Core и XUnit.

У меня есть проект с интеграционными тестами, которые используют Microsoft.AspNetCore.TestHost в качестве тестового сервера.

На моей локальной машине разработки, когда я бегу dotnet test на моем проекте все тесты проходят. Я установил GitLab-CI runner на нашем сервере, когда я запускаю 'dotnet test' в том же проекте на этом сервере, все тесты с HTTP-запросом к TestHost завершаются с той же ошибкой:

Response status code does not indicate success: 301 (Moved Permanently).

Испытательная установка:

_server = new TestServer(new WebHostBuilder().UseStartup(startup));
_client = _server.CreateClient();

Пример неудачного теста:

_response = _client.GetAsync($"/api/inventory").Result;
var responseResult = _response.Content?.ReadAsStringAsync().Result;
_response.EnsureSuccessStatusCode();

Тест не пройден при _response.EnsureSuccessStatusCode();

На обеих машинах установлена ​​одинаковая и единственная версия.NETCore SDK (2.1.302). Цели проекта.NETCoreApp v2.1. IIS настроен на сервере только с веб-сайтом по умолчанию (IIS в любом случае не должен иметь значения с AspNetCore.TestHost).

1 ответ

Я нашел проблему. На сервере не была задана переменная среды ASPNETCORE_ENVIRONMENT, поэтому тест выбирал файл рабочей конфигурации вместо файла конфигурации разработки, в котором указывалось использование перенаправления HTTP на HTTPS.