diff --git "a/features/step_definitions/\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\232\320\276\320\274\320\260\320\275\320\264\321\213.os" "b/features/step_definitions/\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\232\320\276\320\274\320\260\320\275\320\264\321\213.os" index 498ad7f..4e8f192 100644 --- "a/features/step_definitions/\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\232\320\276\320\274\320\260\320\275\320\264\321\213.os" +++ "b/features/step_definitions/\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\232\320\276\320\274\320\260\320\275\320\264\321\213.os" @@ -18,6 +18,8 @@ ВсеШаги.Добавить("ЯУстанавливаюПериодОпросаЗавершенияКомандыВМиллисекунду"); ВсеШаги.Добавить("ЯСнимаюФлагПоказаНемедленногоВыводаКоманды"); ВсеШаги.Добавить("ЯПодключаюВыводКомандыВЛог"); + ВсеШаги.Добавить("ЯПодключаюВыводВФайлДляЛога"); + ВсеШаги.Добавить("ЯУстанавливаюФлагПоказаНемедленногоВыводаКоманды"); Возврат ВсеШаги; КонецФункции @@ -90,6 +92,13 @@ Команда.ПоказыватьВыводНемедленно(Ложь); КонецПроцедуры +//Я устанавливаю флаг показа немедленного вывода команды "oscript" +Процедура ЯУстанавливаюФлагПоказаНемедленногоВыводаКоманды(Знач ИмяИлиТекстКоманды) Экспорт + Команда = ПолучитьКомандуИзКонтекста(ИмяИлиТекстКоманды); + + Команда.ПоказыватьВыводНемедленно(Истина); +КонецПроцедуры + //Я добавляю параметры для команды "oscript" //| -version | //| -encoding=utf-8 | @@ -112,6 +121,16 @@ // ВызватьИсключение Новый ИнформацияОбОшибке("Шаг <ЯПодключаюВыводКомандыВЛог> не реализован", "Не реализовано."); КонецПроцедуры +//Я подключаю вывод в файл "лог1.Log" для лога "ТестовыйЛог" +Процедура ЯПодключаюВыводВФайлДляЛога(Знач ПутьФайла, Знач ИмяЛога) Экспорт + НовыйЛог = Логирование.ПолучитьЛог(ИмяЛога); + + ФайлЖурнала = Новый ВыводЛогаВФайл; + ФайлЖурнала.ОткрытьФайл(ПутьФайла); + + НовыйЛог.ДобавитьСпособВывода(ФайлЖурнала); + +КонецПроцедуры // { Служебные функции diff --git "a/features/\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\232\320\276\320\274\320\260\320\275\320\264\321\213.feature" "b/features/\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\232\320\276\320\274\320\260\320\275\320\264\321\213.feature" index b099306..edf8e7d 100644 --- "a/features/\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\232\320\276\320\274\320\260\320\275\320\264\321\213.feature" +++ "b/features/\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\232\320\276\320\274\320\260\320\275\320\264\321\213.feature" @@ -73,11 +73,51 @@ И Код возврата команды "oscript" равен 0 Сценарий: Выполнение команды с выводом в отдельный лог - Допустим Я снимаю флаг показа немедленного вывода команды "oscript" + Допустим Я создаю временный каталог и сохраняю его в контекст + И Я устанавливаю временный каталог как рабочий каталог + И Я установил рабочий каталог как текущий каталог + Допустим Я подключаю вывод команды "oscript" в лог "ТестовыйЛог" + И Я подключаю вывод в файл "лог1.Log" для лога "ТестовыйЛог" И Я добавляю параметр "-version" для команды "oscript" + Когда Я выполняю команду "oscript" - Тогда Вывод команды "oscript" содержит "1.0" - Тогда Я сообщаю вывод команды "oscript" - И Вывод команды "oscript" содержит "ФИЧА ВыполнениеКоманды" + Тогда я не вижу в консоли строку подобно "(\d+\.){3}\d+" + Тогда я не вижу в консоли вывод "ФИЧА ВыполнениеКоманды" И Код возврата команды "oscript" равен 0 + И Файл "лог1.Log" содержит "1ФИЧА ВыполнениеКоманды" + +Сценарий: Выполнение команды с выводом в отдельные логи + Допустим Я создаю временный каталог и сохраняю его в контекст + И Я устанавливаю временный каталог как рабочий каталог + И Я установил рабочий каталог как текущий каталог + + Допустим Я подключаю вывод команды "oscript" в лог "ТестовыйЛог" + И Я подключаю вывод в файл "лог1.Log" для лога "ТестовыйЛог" + И Я подключаю вывод в файл "лог2.txt" для лога "ТестовыйЛог2" + Допустим Я подключаю вывод команды "oscript" в лог "ТестовыйЛог2" + И Я добавляю параметр "-version" для команды "oscript" + + Когда Я выполняю команду "oscript" + Тогда я не вижу в консоли строку подобно "(\d+\.){3}\d+" + Тогда я не вижу в консоли вывод "ФИЧА ВыполнениеКоманды" + И Код возврата команды "oscript" равен 0 + И Файл "лог1.Log" содержит "ФИЧА ВыполнениеКоманды" + И Файл "лог2.txt" содержит "1ФИЧА ВыполнениеКоманды" + +Сценарий: Выполнение команды с выводом в отдельный лог при включенном немедленном выводом команды + Допустим Я создаю временный каталог и сохраняю его в контекст + И Я устанавливаю временный каталог как рабочий каталог + И Я установил рабочий каталог как текущий каталог + + Допустим Я устанавливаю флаг показа немедленного вывода команды "oscript" + Допустим Я подключаю вывод команды "oscript" в лог "ТестовыйЛог" + И Я подключаю вывод в файл "лог1.Log" для лога "ТестовыйЛог" + И Я добавляю параметр "-version" для команды "oscript" + + Когда Я выполняю команду "oscript" + Тогда я не вижу в консоли строку подобно "(\d+\.){3}\d+" + Тогда я не вижу в консоли вывод "ФИЧА ВыполнениеКоманды" + И Код возврата команды "oscript" равен 0 + + И Файл "лог1.Log" содержит "1ФИЧА ВыполнениеКоманды" diff --git "a/src/\320\232\320\276\320\274\320\260\320\275\320\264\320\260.os" "b/src/\320\232\320\276\320\274\320\260\320\275\320\264\320\260.os" index c61d800..29b8270 100644 --- "a/src/\320\232\320\276\320\274\320\260\320\275\320\264\320\260.os" +++ "b/src/\320\232\320\276\320\274\320\260\320\275\320\264\320\260.os" @@ -31,7 +31,12 @@ ПроверитьВозможностьВыполненияКоманды(); - КодВозврата = ЗапуститьИПодождать(); + КодВозврата = ЗапуститьИПодождать(); + + Для каждого ПодключенныйЛог Из ПодключенныеЛоги Цикл + ПодключенныйЛог.Закрыть(); + КонецЦикла; + Лог.Отладка("Код возврата равен %1", КодВозврата); Возврат КодВозврата; @@ -394,7 +399,9 @@ КонецЕсли; Если Рез <> "" Тогда + Лог.Отладка("в цикле %2%1", Рез, Символы.ПС); Если ЗначениеЗаполнено(ПодключенныеЛоги) Тогда + Лог.Отладка(" Вывожу в отдельные логи"); Для каждого ПодключенныйЛог Из ПодключенныеЛоги Цикл Если ЭтоВыводОшибки Тогда ПодключенныйЛог.Ошибка(Рез); @@ -402,13 +409,14 @@ ПодключенныйЛог.Информация(Рез); КонецЕсли; КонецЦикла; + Иначе + ЗаписьXML.ЗаписатьБезОбработки(Рез + Символы.ПС); + + Если НемедленнныйВывод Тогда + Сообщить(Рез); + КонецЕсли; КонецЕсли; - Лог.Отладка("в цикле %2%1", Рез, Символы.ПС); - ЗаписьXML.ЗаписатьБезОбработки(Рез + Символы.ПС); - Если НемедленнныйВывод Тогда - Сообщить(Рез); - КонецЕсли; КонецЕсли; Возврат Рез;