Skip to content

Commit

Permalink
Сценарии фичи из # 18 и реализации фичи
Browse files Browse the repository at this point in the history
  • Loading branch information
artbear committed Nov 12, 2017
1 parent 1d2a4a2 commit aa160bc
Show file tree
Hide file tree
Showing 3 changed files with 77 additions and 10 deletions.
19 changes: 19 additions & 0 deletions features/step_definitions/ВыполнениеКоманды.os
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@
ВсеШаги.Добавить("ЯУстанавливаюПериодОпросаЗавершенияКомандыВМиллисекунду");
ВсеШаги.Добавить("ЯСнимаюФлагПоказаНемедленногоВыводаКоманды");
ВсеШаги.Добавить("ЯПодключаюВыводКомандыВЛог");
ВсеШаги.Добавить("ЯПодключаюВыводВФайлДляЛога");
ВсеШаги.Добавить("ЯУстанавливаюФлагПоказаНемедленногоВыводаКоманды");

Возврат ВсеШаги;
КонецФункции
Expand Down Expand Up @@ -90,6 +92,13 @@
Команда.ПоказыватьВыводНемедленно(Ложь);
КонецПроцедуры

//Я устанавливаю флаг показа немедленного вывода команды "oscript"
Процедура ЯУстанавливаюФлагПоказаНемедленногоВыводаКоманды(Знач ИмяИлиТекстКоманды) Экспорт
Команда = ПолучитьКомандуИзКонтекста(ИмяИлиТекстКоманды);

Команда.ПоказыватьВыводНемедленно(Истина);
КонецПроцедуры

//Я добавляю параметры для команды "oscript"
//| -version |
//| -encoding=utf-8 |
Expand All @@ -112,6 +121,16 @@
// ВызватьИсключение Новый ИнформацияОбОшибке("Шаг <ЯПодключаюВыводКомандыВЛог> не реализован", "Не реализовано.");
КонецПроцедуры

//Я подключаю вывод в файл "лог1.Log" для лога "ТестовыйЛог"
Процедура ЯПодключаюВыводВФайлДляЛога(Знач ПутьФайла, Знач ИмяЛога) Экспорт
НовыйЛог = Логирование.ПолучитьЛог(ИмяЛога);

ФайлЖурнала = Новый ВыводЛогаВФайл;
ФайлЖурнала.ОткрытьФайл(ПутьФайла);

НовыйЛог.ДобавитьСпособВывода(ФайлЖурнала);

КонецПроцедуры

// { Служебные функции

Expand Down
48 changes: 44 additions & 4 deletions features/ВыполнениеКоманды.feature
Original file line number Diff line number Diff line change
Expand Up @@ -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ФИЧА ВыполнениеКоманды"
20 changes: 14 additions & 6 deletions src/Команда.os
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,12 @@

ПроверитьВозможностьВыполненияКоманды();

КодВозврата = ЗапуститьИПодождать();
КодВозврата = ЗапуститьИПодождать();

Для каждого ПодключенныйЛог Из ПодключенныеЛоги Цикл
ПодключенныйЛог.Закрыть();
КонецЦикла;

Лог.Отладка("Код возврата равен %1", КодВозврата);
Возврат КодВозврата;

Expand Down Expand Up @@ -394,21 +399,24 @@
КонецЕсли;

Если Рез <> "" Тогда
Лог.Отладка("в цикле %2%1", Рез, Символы.ПС);
Если ЗначениеЗаполнено(ПодключенныеЛоги) Тогда
Лог.Отладка(" Вывожу в отдельные логи");
Для каждого ПодключенныйЛог Из ПодключенныеЛоги Цикл
Если ЭтоВыводОшибки Тогда
ПодключенныйЛог.Ошибка(Рез);
Иначе
ПодключенныйЛог.Информация(Рез);
КонецЕсли;
КонецЦикла;
Иначе
ЗаписьXML.ЗаписатьБезОбработки(Рез + Символы.ПС);

Если НемедленнныйВывод Тогда
Сообщить(Рез);
КонецЕсли;
КонецЕсли;
Лог.Отладка("в цикле %2%1", Рез, Символы.ПС);
ЗаписьXML.ЗаписатьБезОбработки(Рез + Символы.ПС);

Если НемедленнныйВывод Тогда
Сообщить(Рез);
КонецЕсли;
КонецЕсли;

Возврат Рез;
Expand Down

0 comments on commit aa160bc

Please sign in to comment.