Ошибка 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.