Skip to content

Commit 05be96c

Browse files
committed
Merge branch 'release/v1.4.0'
2 parents 38389a1 + c555055 commit 05be96c

File tree

9 files changed

+403
-107
lines changed

9 files changed

+403
-107
lines changed

.vscode/tasks.json

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,15 @@
33
"_runner": "terminal",
44
"windows": {
55
"command": "cmd",
6-
"args": ["/c", "chcp 65001 ;"]
6+
"args": ["/c", "chcp", "65001", "&&"]
7+
// "args": ["/c", "chcp 65001 ;"]
78
},
89
"linux": {
910
"command": "sh",
1011
"args": ["-c"]
1112
},
12-
"isShellCommand": true,
13-
"showOutput": "silent",
13+
// "isShellCommand": true,
14+
// "showOutput": "silent",
1415
"tasks": [
1516
{
1617
"taskName": "Testing project",
@@ -21,7 +22,7 @@
2122
],
2223
"echoCommand": true,
2324
"showOutput": "always",
24-
"suppressTaskName": true,
25+
// "suppressTaskName": true,
2526
// "isBuildCommand": false,
2627
"isTestCommand": false,
2728
"problemMatcher": {
@@ -73,7 +74,7 @@
7374
"args": [
7475
"1bdd",
7576
"${workspaceRoot}/features",
76-
"-out",
77+
"-out",
7778
"${workspaceRoot}/exec.log"
7879
],
7980
"echoCommand": true,
@@ -96,8 +97,8 @@
9697
"args": [
9798
"1bdd",
9899
"${file}",
99-
"-fail-fast",
100-
"-out",
100+
"-fail-fast",
101+
"-out",
101102
"${workspaceRoot}/exec.log"
102103
],
103104
"echoCommand": true,
@@ -122,8 +123,8 @@
122123
"args": [
123124
"1bdd",
124125
"${fileDirname}/../${fileBasenameNoExtension}.feature",
125-
"-fail-fast",
126-
"-out",
126+
"-fail-fast",
127+
"-out",
127128
"${workspaceRoot}/exec.log"
128129
],
129130
"echoCommand": true,
@@ -148,10 +149,10 @@
148149
"args": [
149150
"1bdd",
150151
"${file}",
151-
"-fail-fast",
152-
"-verbose",
153-
"on",
154-
"-out",
152+
"-fail-fast",
153+
"-verbose",
154+
"on",
155+
"-out",
155156
"${workspaceRoot}/exec.log"
156157
],
157158
"echoCommand": true,
@@ -175,7 +176,7 @@
175176
"1bdd",
176177
"gen",
177178
"${file}",
178-
"-out",
179+
"-out",
179180
"${workspaceRoot}/exec.log"
180181
],
181182
"echoCommand": true,
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
2+
Процедура Запустить(ВремяВыполнения)
3+
4+
Ожидание = ТекущаяУниверсальнаяДатаВМиллисекундах() + ВремяВыполнения * 1000; // сек
5+
6+
Пока Ожидание > ТекущаяУниверсальнаяДатаВМиллисекундах() Цикл
7+
Сообщить("Полезная работа");
8+
Приостановить(1000);
9+
КонецЦикла;
10+
11+
12+
КонецПроцедуры
13+
14+
Если АргументыКоманднойСтроки.Количество() Тогда
15+
16+
ВремяВыполнения = АргументыКоманднойСтроки[0];
17+
Запустить(ВремяВыполнения);
18+
19+
КонецЕсли;
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
2+
Перем Счетчик;
3+
Перем ТребуетсяОтказ;
4+
5+
Функция ПолучитьСчетчик() Экспорт
6+
Возврат Счетчик;
7+
КонецФункции
8+
9+
Процедура УстановитьОтказ() Экспорт
10+
ТребуетсяОтказ = Истина;
11+
КонецПроцедуры
12+
13+
Процедура ОбработкаОжиданияПроцесса(Процесс, Отказ, ПериодОпроса, ДополнительныеПараметрыОбработчика, СтандартнаяОбработка) Экспорт
14+
15+
Счетчик = Счетчик + 1;
16+
17+
Если ТребуетсяОтказ Тогда
18+
Отказ = Истина;
19+
КонецЕсли;
20+
21+
КонецПроцедуры
22+
23+
Счетчик = 0;
24+
ТребуетсяОтказ = Ложь;
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
// Реализация шагов BDD-фич/сценариев c помощью фреймворка https://github.com/artbear/1bdd
2+
#Использовать "../.."
3+
4+
Перем БДД; //контекст фреймворка 1bdd
5+
6+
// Метод выдает список шагов, реализованных в данном файле-шагов
7+
Функция ПолучитьСписокШагов(КонтекстФреймворкаBDD) Экспорт
8+
БДД = КонтекстФреймворкаBDD;
9+
10+
ВсеШаги = Новый Массив;
11+
12+
ВсеШаги.Добавить("ЯСоздаюОбработчикОжиданияПроцесса");
13+
ВсеШаги.Добавить("ЯУстанавливаюОтказВОбработчикОжиданияПроцесса");
14+
ВсеШаги.Добавить("ЯУстанавливаюОбработчикОжиданияПроцессаКомандыСИнтервалом");
15+
ВсеШаги.Добавить("СчетчикОбработчикаРавен");
16+
17+
Возврат ВсеШаги;
18+
КонецФункции
19+
20+
// Реализация шагов
21+
22+
// Процедура выполняется перед запуском каждого сценария
23+
Процедура ПередЗапускомСценария(Знач Узел) Экспорт
24+
25+
КонецПроцедуры
26+
27+
// Процедура выполняется после завершения каждого сценария
28+
Процедура ПослеЗапускаСценария(Знач Узел) Экспорт
29+
30+
КонецПроцедуры
31+
32+
//Я создаю обработчик ожидания процесса
33+
Процедура ЯСоздаюОбработчикОжиданияПроцесса() Экспорт
34+
35+
Обработчик = ЗагрузитьСценарий(".\features\step_definitions\fixtures\ОбработчикОжиданияПроцесса.os");
36+
37+
БДД.СохранитьВКонтекст("Обработчик", Обработчик);
38+
39+
КонецПроцедуры
40+
41+
//Я устанавливаю отказ в обработчик ожидая процесса
42+
Процедура ЯУстанавливаюОтказВОбработчикОжиданияПроцесса() Экспорт
43+
44+
Обработчик = БДД.ПолучитьИзКонтекста("Обработчик");
45+
Обработчик.УстановитьОтказ();
46+
47+
КонецПроцедуры
48+
49+
//Счетчик обработчика равен "0"
50+
Процедура СчетчикОбработчикаРавен(Знач ЧислоСчетчика) Экспорт
51+
52+
Обработчик = БДД.ПолучитьИзКонтекста("Обработчик");
53+
54+
Ожидаем.Что(Обработчик.ПолучитьСчетчик(), "Счетчик должен быть равен").Равно(Число(ЧислоСчетчика));
55+
56+
КонецПроцедуры
57+
58+
//Я устанавливаю обработчик ожидания процесса команды "oscript" с интервалом "1000"
59+
Процедура ЯУстанавливаюОбработчикОжиданияПроцессаКомандыСИнтервалом(Знач ИмяКоманды, Знач Интервал) Экспорт
60+
61+
Обработчик = БДД.ПолучитьИзКонтекста("Обработчик");
62+
Команда = ПолучитьКомандуИзКонтекста(ИмяКоманды);
63+
Команда.УстановитьОбработчикОжидания(Обработчик, Число(Интервал));
64+
65+
КонецПроцедуры
66+
67+
//TODO дубль кода с 1bdd::ВыполнениеКоманд.os
68+
Функция ПолучитьКомандуИзКонтекста(Знач ИмяКоманды)
69+
70+
КлючКонтекста = КлючКоманды(ИмяКоманды);
71+
Команда = БДД.ПолучитьИзКонтекста(КлючКонтекста);
72+
73+
Если Не ЗначениеЗаполнено(Команда) Тогда
74+
Команда = Новый Команда;
75+
Команда.УстановитьСтрокуЗапуска(ИмяКоманды);
76+
БДД.СохранитьВКонтекст(КлючКонтекста, Команда);
77+
КонецЕсли;
78+
79+
Возврат Команда;
80+
КонецФункции
81+
82+
//TODO дубль кода с 1bdd::ВыполнениеКоманд.os
83+
Функция КлючКоманды(Знач ИмяКоманды)
84+
Возврат "Команда-" + ИмяКоманды;
85+
КонецФункции

features/step_definitions/ВыполнениеКоманды.os

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@
5353
Процедура ЯУстанавливаюОжидаемыйКодВозвратаДляКоманды(Знач ОжидаемыйКодВозврата, Знач ИмяИлиТекстКоманды) Экспорт
5454
Команда = ПолучитьКомандуИзКонтекста(ИмяИлиТекстКоманды);
5555

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

5959
//Я устанавливаю ожидаемый диапазон кодов возврата от 0 до 10 для команды "oscript"

features/wait-handler.feature

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# language: ru
2+
3+
Функциональность: Выполнение команды
4+
5+
Как разработчик
6+
Я хочу иметь возможность выполнять команды
7+
Чтобы я мог проще автоматизировать больше действий на OneScript
8+
9+
Контекст: Отключение отладки в логах
10+
Допустим Я выключаю отладку лога с именем "oscript.lib.commands"
11+
И Я очищаю параметры команды "oscript" в контексте
12+
13+
Сценарий: Выполнение долгой команды
14+
Когда Я добавляю параметры для команды "oscript"
15+
# | -encoding=utf-8 |
16+
| features/step_definitions/fixtures/ДолгоеВыполнение.os |
17+
| 1 |
18+
# И Я добавляю параметр "features/step_definitions/fixtures/ДолгоеВыполнение.os" для команды "oscript"
19+
# И Я добавляю параметр "5" для команды "oscript"
20+
И Я устанавливаю период опроса завершения команды "oscript" в 1 миллисекунду
21+
И Я выполняю команду "oscript"
22+
Тогда Вывод команды "oscript" содержит "Полезная работа"
23+
И Код возврата команды "oscript" равен 0
24+
25+
Сценарий: Выполнение долгой команды
26+
Когда Я добавляю параметры для команды "oscript"
27+
# | -encoding=utf-8 |
28+
| features/step_definitions/fixtures/ДолгоеВыполнение.os |
29+
| 1 |
30+
# И Я добавляю параметр "features/step_definitions/fixtures/ДолгоеВыполнение.os" для команды "oscript"
31+
# И Я добавляю параметр "5" для команды "oscript"
32+
И Я создаю обработчик ожидания процесса
33+
И Я устанавливаю отказ в обработчик ожидания процесса
34+
И Я устанавливаю обработчик ожидания процесса команды "oscript" с интервалом "1000"
35+
И Я устанавливаю ожидаемый код возврата -1 для команды "oscript"
36+
И Я выполняю команду "oscript"
37+
Тогда Вывод команды "oscript" содержит "Полезная работа"
38+
# И Код возврата команды "oscript" равен 1
39+
И Счетчик обработчика равен "1"

packagedef

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11

22
Описание.Имя("1commands")
3-
.Версия("1.3.5")
3+
.Версия("1.4.0")
44
.ВерсияСреды("1.0.17")
55
.ЗависитОт("logos")
66
.ЗависитОт("asserts")
7+
.ЗависитОт("semver")
78
.ЗависитОт("tempfiles")
89
.ВключитьФайл("src")
910
.ВключитьФайл("features")

0 commit comments

Comments
 (0)