Skip to content

Commit

Permalink
Merge branch 'release/v1.4.0'
Browse files Browse the repository at this point in the history
  • Loading branch information
artbear committed Apr 25, 2019
2 parents 38389a1 + c555055 commit 05be96c
Show file tree
Hide file tree
Showing 9 changed files with 403 additions and 107 deletions.
29 changes: 15 additions & 14 deletions .vscode/tasks.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,15 @@
"_runner": "terminal",
"windows": {
"command": "cmd",
"args": ["/c", "chcp 65001 ;"]
"args": ["/c", "chcp", "65001", "&&"]
// "args": ["/c", "chcp 65001 ;"]
},
"linux": {
"command": "sh",
"args": ["-c"]
},
"isShellCommand": true,
"showOutput": "silent",
// "isShellCommand": true,
// "showOutput": "silent",
"tasks": [
{
"taskName": "Testing project",
Expand All @@ -21,7 +22,7 @@
],
"echoCommand": true,
"showOutput": "always",
"suppressTaskName": true,
// "suppressTaskName": true,
// "isBuildCommand": false,
"isTestCommand": false,
"problemMatcher": {
Expand Down Expand Up @@ -73,7 +74,7 @@
"args": [
"1bdd",
"${workspaceRoot}/features",
"-out",
"-out",
"${workspaceRoot}/exec.log"
],
"echoCommand": true,
Expand All @@ -96,8 +97,8 @@
"args": [
"1bdd",
"${file}",
"-fail-fast",
"-out",
"-fail-fast",
"-out",
"${workspaceRoot}/exec.log"
],
"echoCommand": true,
Expand All @@ -122,8 +123,8 @@
"args": [
"1bdd",
"${fileDirname}/../${fileBasenameNoExtension}.feature",
"-fail-fast",
"-out",
"-fail-fast",
"-out",
"${workspaceRoot}/exec.log"
],
"echoCommand": true,
Expand All @@ -148,10 +149,10 @@
"args": [
"1bdd",
"${file}",
"-fail-fast",
"-verbose",
"on",
"-out",
"-fail-fast",
"-verbose",
"on",
"-out",
"${workspaceRoot}/exec.log"
],
"echoCommand": true,
Expand All @@ -175,7 +176,7 @@
"1bdd",
"gen",
"${file}",
"-out",
"-out",
"${workspaceRoot}/exec.log"
],
"echoCommand": true,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@

Процедура Запустить(ВремяВыполнения)

Ожидание = ТекущаяУниверсальнаяДатаВМиллисекундах() + ВремяВыполнения * 1000; // сек

Пока Ожидание > ТекущаяУниверсальнаяДатаВМиллисекундах() Цикл
Сообщить("Полезная работа");
Приостановить(1000);
КонецЦикла;


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

Если АргументыКоманднойСтроки.Количество() Тогда

ВремяВыполнения = АргументыКоманднойСтроки[0];
Запустить(ВремяВыполнения);

КонецЕсли;
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@

Перем Счетчик;
Перем ТребуетсяОтказ;

Функция ПолучитьСчетчик() Экспорт
Возврат Счетчик;
КонецФункции

Процедура УстановитьОтказ() Экспорт
ТребуетсяОтказ = Истина;
КонецПроцедуры

Процедура ОбработкаОжиданияПроцесса(Процесс, Отказ, ПериодОпроса, ДополнительныеПараметрыОбработчика, СтандартнаяОбработка) Экспорт

Счетчик = Счетчик + 1;

Если ТребуетсяОтказ Тогда
Отказ = Истина;
КонецЕсли;

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

Счетчик = 0;
ТребуетсяОтказ = Ложь;
85 changes: 85 additions & 0 deletions features/step_definitions/wait-handler.os
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
// Реализация шагов BDD-фич/сценариев c помощью фреймворка https://github.com/artbear/1bdd
#Использовать "../.."

Перем БДД; //контекст фреймворка 1bdd

// Метод выдает список шагов, реализованных в данном файле-шагов
Функция ПолучитьСписокШагов(КонтекстФреймворкаBDD) Экспорт
БДД = КонтекстФреймворкаBDD;

ВсеШаги = Новый Массив;

ВсеШаги.Добавить("ЯСоздаюОбработчикОжиданияПроцесса");
ВсеШаги.Добавить("ЯУстанавливаюОтказВОбработчикОжиданияПроцесса");
ВсеШаги.Добавить("ЯУстанавливаюОбработчикОжиданияПроцессаКомандыСИнтервалом");
ВсеШаги.Добавить("СчетчикОбработчикаРавен");

Возврат ВсеШаги;
КонецФункции

// Реализация шагов

// Процедура выполняется перед запуском каждого сценария
Процедура ПередЗапускомСценария(Знач Узел) Экспорт

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

// Процедура выполняется после завершения каждого сценария
Процедура ПослеЗапускаСценария(Знач Узел) Экспорт

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

//Я создаю обработчик ожидания процесса
Процедура ЯСоздаюОбработчикОжиданияПроцесса() Экспорт

Обработчик = ЗагрузитьСценарий(".\features\step_definitions\fixtures\ОбработчикОжиданияПроцесса.os");

БДД.СохранитьВКонтекст("Обработчик", Обработчик);

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

//Я устанавливаю отказ в обработчик ожидая процесса
Процедура ЯУстанавливаюОтказВОбработчикОжиданияПроцесса() Экспорт

Обработчик = БДД.ПолучитьИзКонтекста("Обработчик");
Обработчик.УстановитьОтказ();

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

//Счетчик обработчика равен "0"
Процедура СчетчикОбработчикаРавен(Знач ЧислоСчетчика) Экспорт

Обработчик = БДД.ПолучитьИзКонтекста("Обработчик");

Ожидаем.Что(Обработчик.ПолучитьСчетчик(), "Счетчик должен быть равен").Равно(Число(ЧислоСчетчика));

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

//Я устанавливаю обработчик ожидания процесса команды "oscript" с интервалом "1000"
Процедура ЯУстанавливаюОбработчикОжиданияПроцессаКомандыСИнтервалом(Знач ИмяКоманды, Знач Интервал) Экспорт

Обработчик = БДД.ПолучитьИзКонтекста("Обработчик");
Команда = ПолучитьКомандуИзКонтекста(ИмяКоманды);
Команда.УстановитьОбработчикОжидания(Обработчик, Число(Интервал));

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

//TODO дубль кода с 1bdd::ВыполнениеКоманд.os
Функция ПолучитьКомандуИзКонтекста(Знач ИмяКоманды)

КлючКонтекста = КлючКоманды(ИмяКоманды);
Команда = БДД.ПолучитьИзКонтекста(КлючКонтекста);

Если Не ЗначениеЗаполнено(Команда) Тогда
Команда = Новый Команда;
Команда.УстановитьСтрокуЗапуска(ИмяКоманды);
БДД.СохранитьВКонтекст(КлючКонтекста, Команда);
КонецЕсли;

Возврат Команда;
КонецФункции

//TODO дубль кода с 1bdd::ВыполнениеКоманд.os
Функция КлючКоманды(Знач ИмяКоманды)
Возврат "Команда-" + ИмяКоманды;
КонецФункции
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@
Процедура ЯУстанавливаюОжидаемыйКодВозвратаДляКоманды(Знач ОжидаемыйКодВозврата, Знач ИмяИлиТекстКоманды) Экспорт
Команда = ПолучитьКомандуИзКонтекста(ИмяИлиТекстКоманды);

Команда.УстановитьПравильныйКодВозврата(ОжидаемыйКодВозврата);
Команда.УстановитьПравильныйКодВозврата(Число(ОжидаемыйКодВозврата));
КонецПроцедуры

//Я устанавливаю ожидаемый диапазон кодов возврата от 0 до 10 для команды "oscript"
Expand Down
39 changes: 39 additions & 0 deletions features/wait-handler.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# language: ru

Функциональность: Выполнение команды

Как разработчик
Я хочу иметь возможность выполнять команды
Чтобы я мог проще автоматизировать больше действий на OneScript

Контекст: Отключение отладки в логах
Допустим Я выключаю отладку лога с именем "oscript.lib.commands"
И Я очищаю параметры команды "oscript" в контексте

Сценарий: Выполнение долгой команды
Когда Я добавляю параметры для команды "oscript"
# | -encoding=utf-8 |
| features/step_definitions/fixtures/ДолгоеВыполнение.os |
| 1 |
# И Я добавляю параметр "features/step_definitions/fixtures/ДолгоеВыполнение.os" для команды "oscript"
# И Я добавляю параметр "5" для команды "oscript"
И Я устанавливаю период опроса завершения команды "oscript" в 1 миллисекунду
И Я выполняю команду "oscript"
Тогда Вывод команды "oscript" содержит "Полезная работа"
И Код возврата команды "oscript" равен 0

Сценарий: Выполнение долгой команды
Когда Я добавляю параметры для команды "oscript"
# | -encoding=utf-8 |
| features/step_definitions/fixtures/ДолгоеВыполнение.os |
| 1 |
# И Я добавляю параметр "features/step_definitions/fixtures/ДолгоеВыполнение.os" для команды "oscript"
# И Я добавляю параметр "5" для команды "oscript"
И Я создаю обработчик ожидания процесса
И Я устанавливаю отказ в обработчик ожидания процесса
И Я устанавливаю обработчик ожидания процесса команды "oscript" с интервалом "1000"
И Я устанавливаю ожидаемый код возврата -1 для команды "oscript"
И Я выполняю команду "oscript"
Тогда Вывод команды "oscript" содержит "Полезная работа"
# И Код возврата команды "oscript" равен 1
И Счетчик обработчика равен "1"
3 changes: 2 additions & 1 deletion packagedef
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@

Описание.Имя("1commands")
.Версия("1.3.5")
.Версия("1.4.0")
.ВерсияСреды("1.0.17")
.ЗависитОт("logos")
.ЗависитОт("asserts")
.ЗависитОт("semver")
.ЗависитОт("tempfiles")
.ВключитьФайл("src")
.ВключитьФайл("features")
Expand Down
Loading

0 comments on commit 05be96c

Please sign in to comment.