Я выполняю тестовое задание do tnet в моем azure конвейере сборки devops.
Тест завершается нормально в Visual Studio (16.4.3) IDE на моей машине, также используя CLI с Команда "do tnet test".
Однако в azure она не выполняется. Мое решение -. NET Core 3.1 API. Тест возвращает тип CreatedAtRouteResult
при тестировании контроллера. И я утверждаю IsType<CreatedAtRouteResult>
. Хотя в Azure он возвращает ObjectResult
, а не ожидаемый CreatedAtRouteResult
. Дополнительная информация, тестовый проект использует xUnit и Moq. Хотя эти платформы не связаны с ошибкой.
Я не могу перейти к папке сборки на агентах, используемых в нашем частном облаке.
Тестовый код
Результаты теста в Visual Studio и использования do tnet test в CLI
Результаты тестов в Visual Studio
Developer CLI, используя " do tnet test "
Тестовый запуск для ... \ SqlViewService.Tests \ bin \ Debug \ netcoreapp3.1 \ SqlViewService.Tests.dll (.NETCoreApp, Version = v3.1) Microsoft (R) Средство командной строки для выполнения теста Версия 16.3.0 Авторское право (c) Microsoft Corporation. Все права защищены.
При запуске теста, пожалуйста, подождите ...
Всего 1 тестовый файл соответствует указанному шаблону.
Тестовый прогон успешен. Всего тестов: 10 Выполнено: 10 Общее время: 15 0151 секунд
... \ SqlViewService.Tests>
Код ошибки из задачи сборки azure:
Сообщение об ошибке при выполнении теста tnet в azure
Я перехожу по этой ссылке, чтобы настроить конвейер, хотя я не использую YAML но GUI сборка конвейера. Вот так:
Тестовое задание
Publi sh выглядит следующим образом:
Publi sh task
Версия инструмента командной строки для выполнения теста - 16.3.0 как в задаче azure, так и локально.
Довольно базовая установка c, однако не может выяснить, где возникает несоответствие. Есть ли у вас какие-либо идеи или решения?
Я искал в этой статье: https://docs.microsoft.com/en-us/azure/devops/pipelines/ecosystems/dotnet-core?view=azure-devops
В соответствии с просьбой в комментарии, тестируемый метод:
public IActionResult UpdateView([FromBody] SqlViewModel sqlView, [FromHeader, Required] int correlationId, DateTime date)
{
try
{
ThreadContext.Properties["RunID"] = correlationId;
ThreadContext.Properties["Username"] = Environment.UserName;
_logger.LogInformation("SQL View Model: " + sqlView.Name + ", " + sqlView.Database + ", " +
sqlView.UsePrecedingWorkdayLogic);
foreach (var sourceInfo in sqlView.Sources)
{
_logger.LogInformation("Table Info: " + sourceInfo.Name + ", " + sourceInfo.SearchString + ", " +
sourceInfo.DateFormat);
}
ViewLogic.SetViewDate(sqlView, date);
//Returns the location in the response header
return CreatedAtRoute("GetView", new { view = sqlView.Name }, sqlView);
}
catch (Exception ex)
{
return StatusCode(StatusCodes.Status500InternalServerError, "Database failure: " + ex.Message);
}
}