Skip to content

Commit

Permalink
Merge branch 'release/0.8'
Browse files Browse the repository at this point in the history
  • Loading branch information
artbear committed Jan 21, 2017
2 parents 1e24a12 + dd68f22 commit 1a36ce2
Show file tree
Hide file tree
Showing 11 changed files with 347 additions and 18 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
exec.log
5 changes: 3 additions & 2 deletions .vscode/tasks.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@
"version": "0.1.0",
"windows": {
"command": "cmd",
"args": ["/c"]
// "args": ["/c"]
"args": ["/c", "chcp 65001 >nul &"]
},
"linux": {
"command": "sh",
Expand Down Expand Up @@ -38,7 +39,7 @@
"args": [
"1testrunner",
"-run",
"${file}",
"${file}"
],
"echoCommand": true,
"showOutput": "always",
Expand Down
24 changes: 24 additions & 0 deletions appveyor-runtests.cmd
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
@echo on
@chcp 65001

set OSCRIPT=%ProgramFiles(x86)%\OneScript

@echo .
@echo ======================= ======================= ======================= =======================
@echo .
@echo .

call 1bdd features -junit-out ./bdd-log.xml

@if %ERRORLEVEL%==2 GOTO good_exit_bdd
@if %ERRORLEVEL%==0 GOTO good_exit_bdd

dir .\tests\

exit /B 1

:good_exit_bdd

dir .\tests\

exit /B 0
73 changes: 73 additions & 0 deletions appveyor.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
version: 1.2.{build}
pull_requests:
do_not_increment_build_number: true
max_jobs: 1
init:
- ps: Set-WinSystemLocale ru-RU

# appveyor DownloadFile http://oscript.io/downloads/latest/exe -FileName ./oscriptlatest.exe
# dir /w
# oscriptlatest.exe /VERYSILENT /DIR=".\engine\"
# SET PATH=%CD%\engine\bin;%PATH%
# oscript

install:
- cmd: >-
@echo on
git submodule update --init --recursive
set
curl -o %temp%\oscript-setup.exe http://oscript.io/downloads/latest/exe
%temp%\oscript-setup.exe /silent /log="%temp%\oscript-setup.log" /saveinf="%temp%\oscript-setup-settings.txt"
set OSCRIPT=%ProgramFiles(x86)%\OneScript
dir "%OSCRIPT%\bin"
dir "%OSCRIPT%\lib"
rem SET PATH=%CD%\engine\bin;%PATH%
SET PATH=%OSCRIPT%\bin;%PATH%
where oscript
oscript -version
chcp 65001
opm install opm
opm list
opm install 1testrunner
opm install 1commands
opm install 1bdd
opm list
dir "%OSCRIPT%\bin"
dir "%OSCRIPT%\lib"
# to disable automatic builds
build: off
test_script:
- cmd: >-
appveyor-runtests.cmd
pushd %APPVEYOR_BUILD_FOLDER%
after_test:
- ps: # upload results to AppVeyor
- ps: Write-Host "Загружаю результаты тестов на CI"
- ps: $wc = New-Object 'System.Net.WebClient'
# - ps: $wc.UploadFile("https://ci.appveyor.com/api/testresults/junit/$($env:APPVEYOR_JOB_ID)", (Resolve-Path .\tests\tests.xml))
- ps: $wc.UploadFile("https://ci.appveyor.com/api/testresults/junit/$($env:APPVEYOR_JOB_ID)", (Resolve-Path .\bdd-log.xml))
artifacts:
# - path: tests\tests.xml
- path: .\bdd-log.xml
103 changes: 103 additions & 0 deletions features/step_definitions/ВыполнениеКоманды.os
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
// Реализация шагов BDD-фич/сценариев c помощью фреймворка https://github.com/artbear/1bdd
#Использовать "../.."

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

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

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

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

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

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

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

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

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

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

// TODO перенести методы (2 шт) в 1bdd для исключения дублирования

//Я выполняю команду "oscript" через командный процессор системы
Процедура ЯВыполняюКомандуЧерезКомандныйПроцессорСистемы(Знач ИмяИлиТекстКоманды) Экспорт
ВыполнитьКоманду(ИмяИлиТекстКоманды, Истина);
КонецПроцедуры

//Я выполняю команду "oscript" без командного процессора системы
Процедура ЯВыполняюКомандуБезКомандногоПроцессораСистемы(Знач ИмяИлиТекстКоманды) Экспорт
ВыполнитьКоманду(ИмяИлиТекстКоманды, Ложь);
КонецПроцедуры

//Я устанавливаю ожидаемый код возврата 0 для команды "oscript"
Процедура ЯУстанавливаюОжидаемыйКодВозвратаДляКоманды(Знач ОжидаемыйКодВозврата, Знач ИмяИлиТекстКоманды) Экспорт
Команда = ПолучитьКомандуИзКонтекста(ИмяИлиТекстКоманды);

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

//Я устанавливаю ожидаемый диапазон кодов возврата от 0 до 10 для команды "oscript"
Процедура ЯУстанавливаюОжидаемыйДиапазонКодовВозвратаОтДоДляКоманды(Знач МинимальныйОжидаемыйКодВозврата,
Знач МаксимальныйОжидаемыйКодВозврата, Знач ИмяИлиТекстКоманды) Экспорт

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

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

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

ВызватьИсключение СтрШаблон("Не получили исключение при выполнении команды", ИмяИлиТекстКоманды);
КонецПроцедуры


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

Процедура ВыполнитьКоманду(Знач ИмяИлиТекстКоманды, Знач ИспользуемКомандныйПроцессор = Истина)
Команда = ПолучитьКомандуИзКонтекста(ИмяИлиТекстКоманды);
Команда.УстановитьИсполнениеЧерезКомандыСистемы(ИспользуемКомандныйПроцессор);

Команда.Исполнить();
КонецПроцедуры

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

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

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

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

Функция КлючКоманды(Знач ИмяКоманды)
Возврат "Команда-" + ИмяКоманды;
КонецФункции

//}
32 changes: 31 additions & 1 deletion features/ВыполнениеКоманды.feature
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
Чтобы я мог проще автоматизировать больше действий на OneScript

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

Сценарий: Выполнение команды без параметров
Когда Я выполняю команду "git"
Expand All @@ -20,3 +20,33 @@
Тогда Я сообщаю вывод команды "git"
И Вывод команды "git" содержит "version"
И Код возврата команды "git" равен 0

Сценарий: Выполнение команды через командный процессор системы
Когда Я выполняю команду "oscript" через командный процессор системы
Тогда Вывод команды "oscript" содержит "1Script Execution Engine"
И Код возврата команды "oscript" равен 0

Сценарий: Выполнение команды без командного процессора системы
Когда Я выполняю команду "oscript" без командного процессора системы
Тогда Вывод команды "oscript" содержит "1Script Execution Engine"
И Код возврата команды "oscript" равен 0

Сценарий: Проверка правильного кода возврата команды
Когда Я устанавливаю ожидаемый код возврата 0 для команды "oscript"
Когда Я выполняю команду "oscript"
Тогда Код возврата команды "oscript" равен 0

Сценарий: Проверка неправильного кода возврата команды
Когда Я устанавливаю ожидаемый код возврата 123 для команды "oscript"
Тогда Я получаю исключение при выполнении команды "oscript"
И Код возврата команды "oscript" равен 0

Сценарий: Проверка правильного диапазона кодов возврата команды
Когда Я устанавливаю ожидаемый диапазон кодов возврата от 0 до 10 для команды "oscript"
Когда Я выполняю команду "oscript"
Тогда Код возврата команды "oscript" равен 0

Сценарий: Проверка неправильного диапазона кодов возврата команды
Когда Я устанавливаю ожидаемый диапазон кодов возврата от 1 до 10 для команды "oscript"
Тогда Я получаю исключение при выполнении команды "oscript"
И Код возврата команды "oscript" равен 0
1 change: 1 addition & 0 deletions features/КомандныеФайлы.feature
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
Когда Я создаю командный файл
И Я добавляю строку "chcp 1251" в командный файл
И Я добавляю строку "echo командный файл" в командный файл
И Я добавляю строку "chcp 866" в командный файл
И Я сообщаю содержимое командного файла
И Я выполняю командный файл
Тогда Вывод командного файла содержит "командный файл"
Expand Down
6 changes: 5 additions & 1 deletion packagedef
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@

Описание.Имя("1commands")
.Версия("0.7")
.Версия("0.8")
.ЗависитОт("logos")
.ЗависитОт("asserts")
.ЗависитОт("tempfiles")
.ВключитьФайл("src")
.ВключитьФайл("features")
.ВключитьФайл(".vscode")
.ВключитьФайл("readme.md")
.ВключитьФайл("LICENSE.md")
.ВключитьФайл("NOTICE")
.ВключитьФайл("lib.config");
1 change: 1 addition & 0 deletions readme.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# 1commands

Обсудить [![Join the chat at https://gitter.im/EvilBeaver/oscript-library](https://badges.gitter.im/EvilBeaver/oscript-library.svg)](https://gitter.im/EvilBeaver/oscript-library?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![GitHub release](https://img.shields.io/github/release/artbear/1commands.svg)](https://github.com/artbear/1commands/releases)
[![Build status](https://ci.appveyor.com/api/projects/status/ervidk37h9m0tgs5?svg=true)](https://ci.appveyor.com/project/artbear/1commands)

## Библиотека для упрощения работы c запуском различных приложений и командных файлов (cmd, bat, bash) из oscript.

Expand Down
Loading

0 comments on commit 1a36ce2

Please sign in to comment.