Почему метод тестирования не завершен в azure devops build pipe, выполните tnet тестовое задание - PullRequest
2 голосов
/ 27 января 2020

Я выполняю тестовое задание 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);
            }
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...