diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml new file mode 100644 index 0000000..13b6177 --- /dev/null +++ b/.github/workflows/test.yaml @@ -0,0 +1,11 @@ +name: Тестирование + +on: + push: + pull_request: + workflow_dispatch: + +jobs: + test: + uses: autumn-library/workflows/.github/workflows/test.yml@v1 + diff --git a/tests/logos-test.os b/tests/logos-test.os index 9735c77..9d6a7e3 100644 --- a/tests/logos-test.os +++ b/tests/logos-test.os @@ -54,6 +54,7 @@ МассивТестов.Добавить("Тест_ДолженПроверитьПолучениеСпискаЛоговПоФильтру"); МассивТестов.Добавить("Тест_ДолженПроверитьВыводДвухЛоговВОДинФайл"); МассивТестов.Добавить("Тест_ДолженПроверитьПриемственностьИерархииЛогов"); + МассивТестов.Добавить("Тест_ДолженПроверитьПередачуНастроекАппендеровВИерархииЛогов"); Возврат МассивТестов; @@ -697,7 +698,7 @@ Лог1.Закрыть(); Лог2.Закрыть(); - ЧтениеТекста = Новый ЧтениеТекста(ФайлЛога); + ЧтениеТекста = Новый ЧтениеТекста(ФайлЛога, "UTF-8"); ТекстЛога = ЧтениеТекста.Прочитать(); ЧтениеТекста.Закрыть(); @@ -740,7 +741,7 @@ Лог2.Закрыть(); Лог3.Закрыть(); - ЧтениеТекста = Новый ЧтениеТекста(ФайлЛога); + ЧтениеТекста = Новый ЧтениеТекста(ФайлЛога, "UTF-8"); ТекстЛога = ЧтениеТекста.Прочитать(); ЧтениеТекста.Закрыть(); @@ -753,6 +754,59 @@ КонецПроцедуры +Процедура Тест_ДолженПроверитьПередачуНастроекАппендеровВИерархииЛогов() Экспорт + + // Дано + + ФайлЛогаОтладка = ВременныеФайлы.НовоеИмяФайла("log"); + ФайлЛогаОшибки = ВременныеФайлы.НовоеИмяФайла("log"); + + ЗначениеПеременнойСреды = СтрШаблон( + "logger.parentlog=DEBUG, fileDebug, fileError" + + ";appender.fileDebug=ВыводЛогаВФайл" + + ";appender.fileDebug.level=DEBUG" + + ";appender.fileDebug.file=%1" + + ";appender.fileError=ВыводЛогаВФайл" + + ";appender.fileError.level=ERROR" + + ";appender.fileError.file=%2", + ФайлЛогаОтладка, ФайлЛогаОшибки); + + УстановитьПеременнуюСреды("LOGOS_CONFIG", ЗначениеПеременнойСреды); + Логирование.ОбновитьНастройки(); + + // Когда + ЛогПотомок = Логирование.ПолучитьЛог("parentlog.childlog"); + ЛогПотомок.Отладка("ОтладочноеСообщение"); + ЛогПотомок.Ошибка("СообщениеОбОшибке"); + + ФайлОтладки = Новый Файл(ФайлЛогаОтладка); + ФайлОшибок = Новый Файл(ФайлЛогаОшибки); + + // Тогда + Ожидаем.Что(ФайлОтладки.Существует(), "Файл лога отладки создан").Равно(Истина); + Ожидаем.Что(ФайлОшибок.Существует(), "Файл лога ошибок создан").Равно(Истина); + + ЛогПотомок.Закрыть(); + + ЧтениеТекста = Новый ЧтениеТекста(ФайлЛогаОтладка, "UTF-8"); + ТекстОтладки = ЧтениеТекста.Прочитать(); + ЧтениеТекста.Закрыть(); + + СтрокиОтладки = СтрРазделить(ТекстОтладки, Символы.ПС, Ложь); + Ожидаем.Что(СтрокиОтладки.Количество(), "Аппендер отладки: количество сообщений").Равно(2); + Ожидаем.Что(СтрокиОтладки[0], "Аппендер отладки: первое сообщение").Равно("ОТЛАДКА - [parentlog.childlog] - ОтладочноеСообщение"); + Ожидаем.Что(СтрокиОтладки[1], "Аппендер отладки: второе сообщение").Равно("ОШИБКА - [parentlog.childlog] - СообщениеОбОшибке"); + + ЧтениеТекста = Новый ЧтениеТекста(ФайлЛогаОшибки, "UTF-8"); + ТекстОшибок = ЧтениеТекста.Прочитать(); + ЧтениеТекста.Закрыть(); + + СтрокиОшибок = СтрРазделить(ТекстОшибок, Символы.ПС, Ложь); + Ожидаем.Что(СтрокиОшибок.Количество(), "Аппендер ошибок: количество сообщений").Равно(1); + Ожидаем.Что(СтрокиОшибок[0], "Аппендер ошибок: первое сообщение").Равно("ОШИБКА - [parentlog.childlog] - СообщениеОбОшибке"); + +КонецПроцедуры + Процедура ТрассироватьСообщенияЛога(Знач КоллекцияСообщений = Неопределено) Если КоллекцияСообщений = Неопределено Тогда КоллекцияСообщений = мСообщенияЛога;