Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Jenkins - проблемы с выводом даты в определенном формате


(Irina Nikolskaya) #1

Хочу поделиться одной проблемой в Дженкинсе на которую было потрачено времени больше чем хотелось бы.
код в тесте выглядит вот так:

string dateNow = DateTime.Now.AddDays(2).ToString("MM/dd/yyyy");

т.е. я ожидаю что в нужное поле будет вставлена переменная dateNow содержащее время в формате 05/10/2016, - так и происходит когда я запускаю тест из студии но при запуске из Дженкинс получаю вот такое значение даты 05.10.2016 - тест конечно падает и не понятно было почему, пока я не добавила логирование теста и получила значение поля dataNow .
Теперь эта проблема решается вот таким образом

Class

 public static class Utils
    {
        public static string ToDateString(this DateTime dateOriginal)
        {
            return dateOriginal.ToString("MM/dd/yyyy").Replace('.', '/');
        }
    }

основной код

var dateNow = DateTime.Now.AddDays(2).ToDateString();

Вывод спецсимвола "/" приводит к переходу на начало строки
(Yaroslav Pernerovskyy) #2

Очень непонятно, конечно, при чем тут дженкис вообще )


(Irina Nikolskaya) #3

Потому что один и тот же код работает по разному в студии и в Дженкинсе и при просмотре лога видно что значения возвращаемые полем dataNow разные, вернее формат вывода даты


(Sergey Korol) #4

Подозреваю, что проблема в отсутствующем CultureInfo, а также использовании зарезервированного спец. символа. Пробуйте использовать InvariantCulture + экранировать /, либо оборачивать его в '.

DateTime.ToString("dd'/'MM'/'yyyy")

Детали обсуждения по первой ссылке в google:


(Yaroslav Pernerovskyy) #5

Ну очевидно же, что проблема в коде, а не в дженкинсе ))


(Irina Nikolskaya) #7

Да, точно надо была заэкранировать символы "/, попробовала и все заработало:)
Спасибо за информативный коментарий:)


(Sergey Korol) #8

Не забываем о встроенной функциональности пометок понравившихся комментариев и наиболее подходящего решения. :wink: