-
Notifications
You must be signed in to change notification settings - Fork 21
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Knyazkov Alexey
authored and
Knyazkov Alexey
committed
Sep 27, 2019
1 parent
df1c2b5
commit f85c883
Showing
61 changed files
with
3,743 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
bdd-log.xml | ||
*.ospx | ||
|
||
/exec.log | ||
|
||
*.orig | ||
|
||
/tests.xml |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
The MIT License (MIT) | ||
|
||
Copyright (c) 2016 Andrei Ovsiankin | ||
Copyright (c) 2019 BIA Technologies, LLC | ||
|
||
Permission is hereby granted, free of charge, to any person obtaining a copy | ||
of this software and associated documentation files (the "Software"), to deal | ||
in the Software without restriction, including without limitation the rights | ||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
copies of the Software, and to permit persons to whom the Software is | ||
furnished to do so, subject to the following conditions: | ||
|
||
The above copyright notice and this permission notice shall be included in all | ||
copies or substantial portions of the Software. | ||
|
||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||
SOFTWARE. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
# Утилита для автоматического сравнения переопределенных в расширении модулей измененных в новом релизе поставки основной конфигурации | ||
|
||
## Особенности данного решения | ||
- скрипт автоматически сравнивает конфигурации и расширение, выгруженные в формате XML (выгрузка из конфигуратора) | ||
- расширение также должно быть выгружено в формате XML | ||
- помимо стандартных модулей реализована возможность сравнивать обработки заполнения вынесенные из форм документов в обработки | ||
- результат сравнения сохраняется в файл отчет в формате HTML | ||
|
||
## Установка | ||
|
||
Установка на компьютер стандартна | ||
|
||
- склонировать репозиторий или | ||
- распаковать в нужный каталог архив репозитория или | ||
- для Windows запустить [installlocalhost.bat](/installlocalhost.bat) | ||
|
||
## Использование | ||
Приложение позволяет сравнивать переопределенные в расширении методы, а также изменение структуры метаданных. Для каждого из этих режимов реализованы соответствующие команды. | ||
|
||
Возможные команды: | ||
help - Выводит справку по командам | ||
version - Выводит версию приложения | ||
diff - Выполняет сравнение расширения с основной конфигурацией и новой поставкой | ||
objects - Выполняет анализ изменения объектов из основной конфигурации в новой поставке | ||
|
||
diff - Выполняет сравнение расширения с основной конфигурацией и новой поставкой | ||
Параметры: | ||
<КаталогОсновнойКонфигурации> - Каталог основной конфигурации | ||
<КаталогПоставки> - Каталог поставки | ||
<КаталогРасширения> - Каталог расширения | ||
<ФайлРезультат> - Файл-отчет, результат сравнения конфигураций | ||
|
||
Перед использованием необходимо выгрузить релиз поставки в формате XML в произвольный каталог | ||
|
||
- для сравнения обработок заполнения в свойствах обработки в поле комментарий необходимо указать переопределенный модуль в формате: | ||
"Adopted.Documents\<Имя документа>\<Путь к модулю>\<ИмяМодуля.bsl>" | ||
Например: Adopted.Documents\Отгул\Forms\ФормаДокумента\Ext\Form\Module.bsl | ||
|
||
- пример вызова для получения анализа переопределенных методов: | ||
diff3cf diff <каталог основной конфигурации> <каталог с релизом поставки> <каталог с расширением> <файл результат>.html | ||
|
||
- пример вызова для получения анализа изменения структуры метаданных: | ||
diff3cf objects <каталог основной конфигурации> <каталог с релизом поставки> <каталог с расширением> <файл результат>.txt |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
# language: ru | ||
|
||
Функционал: Проверка сборки продукта | ||
Как Пользователь | ||
Я хочу автоматически проверять сборку моего продукта | ||
Чтобы гарантировать возможность установку моего продукта у пользователей | ||
|
||
Контекст: Отключение отладки в логах | ||
Допустим Я выключаю отладку лога с именем "oscript.lib.commands" | ||
И Я очищаю параметры команды "opm" в контексте | ||
|
||
Сценарий: Выполнение команды без параметров | ||
Когда Я добавляю параметр "build ." для команды "opm" | ||
И Я выполняю команду "opm" | ||
Тогда Вывод команды "opm" содержит "Сборка пакета завершена" | ||
И Вывод команды "opm" не содержит "Внешнее исключение" | ||
И Код возврата команды "opm" равен 0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
// Реализация шагов BDD-фич/сценариев c помощью фреймворка https://github.com/artbear/1bdd | ||
|
||
#Использовать gitrunner | ||
#Использовать tempfiles | ||
#Использовать asserts | ||
|
||
Перем БДД; | ||
|
||
Функция ПолучитьСписокШагов(КонтекстФреймворкаBDD) Экспорт | ||
|
||
БДД = КонтекстФреймворкаBDD; | ||
|
||
ВсеШаги = Новый Массив; | ||
ВсеШаги.Добавить("ЯСоздаюВременныйКаталогИЗапоминаюЕгоКак"); | ||
ВсеШаги.Добавить("ЯПереключаюсьВоВременныйКаталог"); | ||
|
||
Возврат ВсеШаги; | ||
КонецФункции | ||
|
||
// я создаю временный каталог и запоминаю его как "Алиас" | ||
Процедура ЯСоздаюВременныйКаталогИЗапоминаюЕгоКак(Алиас) Экспорт | ||
|
||
НовыйВременныйКаталог = ВременныеФайлы.СоздатьКаталог(); | ||
СоздатьКаталог(НовыйВременныйКаталог); | ||
|
||
БДД.СохранитьВКонтекст(Алиас, НовыйВременныйКаталог); | ||
|
||
КонецПроцедуры | ||
|
||
// я переключаюсь во временный каталог "АлиасКаталога" | ||
Процедура ЯПереключаюсьВоВременныйКаталог(АлиасКаталога)Экспорт | ||
|
||
КаталогСкрипта = БДД.ПолучитьИзКонтекста("КаталогПроекта"); | ||
Если НЕ ЗначениеЗаполнено(КаталогСкрипта) Тогда | ||
|
||
БДД.СохранитьВКонтекст("КаталогПроекта", ТекущийКаталог()); | ||
|
||
КонецЕсли; | ||
|
||
КаталогРепозиториев = БДД.ПолучитьИзКонтекста(АлиасКаталога); | ||
УстановитьТекущийКаталог(КаталогРепозиториев); | ||
|
||
КонецПроцедуры |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
# language: ru | ||
|
||
Функциональность: Выполнение прекоммита | ||
|
||
Как разработчик | ||
Я хочу быть уверенным, что diff3cf корректно сравнивает две конфигурации и расширение | ||
|
||
Контекст: | ||
Допустим Я очищаю параметры команды "oscript" в контексте | ||
И я включаю отладку лога с именем "oscript.app.diff3cf" | ||
И я создаю временный каталог и запоминаю его как "КаталогРезультат" | ||
И я переключаюсь во временный каталог "КаталогРезультат" | ||
|
||
Сценарий: Сравнение основной конфигурации конфигурации поставки и расширения | ||
Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os diff <КаталогПроекта>/tests/fixtures/configuration <КаталогПроекта>/tests/fixtures/release <КаталогПроекта>/tests/fixtures/exts/ADDTST report.html" | ||
Тогда Я сообщаю вывод команды "oscript" | ||
И Вывод команды "oscript" содержит "Сохранение отчета..." | ||
И Вывод команды "oscript" не содержит "Ошибка" | ||
|
||
Сценарий: Справнение с неполным набором параметров (без файла отчета) | ||
Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os diff <КаталогПроекта>/tests/fixtures/configuration <КаталогПроекта>/tests/fixtures/release <КаталогПроекта>/tests/fixtures/exts/ADDTST" | ||
Тогда Я сообщаю вывод команды "oscript" | ||
И Вывод команды "oscript" содержит "Сохранение отчета..." | ||
И Вывод команды "oscript" содержит "ОШИБКА - Не удалось сохранить результат в" | ||
|
||
Сценарий: Сравнение основной конфигурации и конфигурации поставки | ||
Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os objects <КаталогПроекта>/tests/fixtures/configuration <КаталогПроекта>/tests/fixtures/release report.txt" | ||
Тогда Я сообщаю вывод команды "oscript" | ||
И Вывод команды "oscript" содержит "Сохраняем результат сравнения" | ||
И Вывод команды "oscript" не содержит "Ошибка" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
# language: ru | ||
|
||
Функциональность: Выполнение команды продукта | ||
|
||
Как разработчик | ||
Я хочу иметь возможность выполнять команды продукта | ||
Чтобы выполнять коллективную разработку приложения для OneScript | ||
|
||
Контекст: | ||
Допустим Я очищаю параметры команды "oscript" в контексте | ||
И я включаю отладку лога с именем "oscript.app.diff3cf" | ||
# И я включаю отладку лога с именем "bdd" | ||
|
||
Сценарий: Получение версии продукта | ||
Когда Я выполняю команду "oscript" с параметрами "src/main.os version" | ||
Тогда Я сообщаю вывод команды "oscript" | ||
И Вывод команды "oscript" содержит "1.0.2" | ||
И Вывод команды "oscript" не содержит "diff3cf v" | ||
И Код возврата команды "oscript" равен 0 | ||
|
||
Сценарий: Получение помощи продукта | ||
Когда Я выполняю команду "oscript" с параметрами "src/main.os help" | ||
Тогда Вывод команды "oscript" содержит | ||
""" | ||
diff3cf v1.0.2 | ||
Возможные команды: | ||
help - Выводит справку по командам | ||
version - Выводит версию приложения | ||
diff - Выполняет сравнение расширения с основной конфигурацией и новой поставкой | ||
""" | ||
И Код возврата команды "oscript" равен 0 | ||
|
||
Сценарий: Вызов исполняемого файла без параметров | ||
Когда Я выполняю команду "oscript" с параметрами "src/main.os" | ||
Тогда Вывод команды "oscript" содержит | ||
""" | ||
diff3cf v1.0.2 | ||
Возможные команды: | ||
help - Выводит справку по командам | ||
version - Выводит версию приложения | ||
diff - Выполняет сравнение расширения с основной конфигурацией и новой поставкой | ||
""" | ||
И Код возврата команды "oscript" равен 5 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
@echo off | ||
call del "*.ospx" | ||
|
||
for /f %%i in ('"oscript -version"') do set result=%%i | ||
|
||
if %result%==1.0.19.105 ( | ||
call opm build . -mf ./packagedef -out . | ||
) else ( | ||
call opm build -m ./packagedef -o . | ||
) | ||
|
||
call opm install -f *.ospx |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
ПутьКСценариюПараметров = ОбъединитьПути(ТекущийСценарий().Каталог, "src", "Модули", "ПараметрыПриложения.os"); | ||
ПараметрыСистемы_ЛокальнаяВерсия = ЗагрузитьСценарий(ПутьКСценариюПараметров); | ||
|
||
ИмяПродукта = НРег(ПараметрыСистемы_ЛокальнаяВерсия.ИмяПродукта()); | ||
|
||
Описание.Имя(ИмяПродукта) | ||
.ВерсияСреды("1.0.21") | ||
.Версия(ПараметрыСистемы_ЛокальнаяВерсия.ВерсияПродукта()) | ||
.ЗависитОт("logos", "1.2.0") | ||
.ЗависитОт("cmdline", "1.0.0") | ||
.ВключитьФайл("src") | ||
.ВключитьФайл("LICENSE") | ||
.ВключитьФайл("README.md") | ||
.ИсполняемыйФайл("src/main.os", ИмяПродукта); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
/////////////////////////////////////////////////////////////////////////////// | ||
// | ||
// Приложение генерации отчета об измененных объектах, переопределенных в расширении | ||
// | ||
// (с) BIA Technologies, LLC | ||
// | ||
/////////////////////////////////////////////////////////////////////////////// | ||
|
||
#Использовать "." | ||
|
||
/////////////////////////////////////////////////////////////////////////////// | ||
|
||
Приложение = МенеджерПриложения.Инициализировать(ПараметрыПриложения); | ||
|
||
Попытка | ||
|
||
Приложение.ЗавершитьРаботуПриложения(Приложение.ЗапуститьВыполнение()); | ||
|
||
Исключение | ||
|
||
Приложение.ЗавершитьРаботуПриложенияСОшибкой(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); | ||
|
||
КонецПопытки; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
/////////////////////////////////////////////////////////////////////////////// | ||
// | ||
// Служебный модуль с реализацией работы <ГенераторОтчета> | ||
// | ||
// (с) BIA Technologies, LLC | ||
// | ||
/////////////////////////////////////////////////////////////////////////////// | ||
|
||
// Сохраняет результат сравнения | ||
// | ||
// Параметры: | ||
// РезультатСравнения - Структура - Результат сравнения конфигураций и расширения | ||
// ИмяФайлаРезультата - Строка - Полное имя файла, в который будет записан результат сравнения | ||
// Лог - log-manager - Экземпляр класса логирования | ||
// ФорматРезультата - Строка - Необязательный, пока реализован только "HTML" формат | ||
// | ||
Процедура СохранитьРезультат(РезультатСравнения, ИмяФайлаРезультата, Лог, ФорматРезультата = "HTML") Экспорт | ||
|
||
Если ФорматРезультата = "HTML" Тогда | ||
|
||
Попытка | ||
ГенераторОтчетаHTML.СохранитьРезультат(РезультатСравнения, ИмяФайлаРезультата, Лог); | ||
Исключение | ||
ОбработкаИсключенияЗаписи(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), ИмяФайлаРезультата, Лог); | ||
КонецПопытки; | ||
|
||
ИначеЕсли ФорматРезультата = "TXT" Тогда | ||
|
||
ТекстРезультат = Новый ТекстовыйДокумент(); | ||
ТекстРезультат.ДобавитьСтроку(СтрШаблон("Результат сравнения изменений в структуре объектов: | ||
|%1 | ||
|%2 | ||
| | ||
|", РезультатСравнения.РодительПуть, РезультатСравнения.ПоставкаПуть)); | ||
|
||
Для каждого ЭлементПроекта Из РезультатСравнения.Типы Цикл | ||
|
||
ТекстРезультат.ДобавитьСтроку(ЭлементПроекта); | ||
|
||
КонецЦикла; | ||
|
||
Если ЗначениеЗаполнено(ИмяФайлаРезультата) Тогда | ||
|
||
Попытка | ||
ТекстРезультат.Записать(ИмяФайлаРезультата, КодировкаТекста.UTF8NoBOM); | ||
Исключение | ||
ОбработкаИсключенияЗаписи(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), ИмяФайлаРезультата, Лог); | ||
КонецПопытки; | ||
|
||
Иначе | ||
|
||
Лог.Информация(ТекстРезультат.ПолучитьТекст()); | ||
|
||
КонецЕсли; | ||
|
||
Иначе | ||
|
||
Лог.Ошибка("Неверный формат результата"); | ||
|
||
КонецЕсли; | ||
|
||
КонецПроцедуры | ||
|
||
Процедура ОбработкаИсключенияЗаписи(ПредставлениеОшибки, ИмяФайлаРезультата, Лог) | ||
|
||
ТекстОшибки = СтрШаблон("Не удалось сохранить результат в '%1' по причине: | ||
|%3", ИмяФайлаРезультата, ПредставлениеОшибки); | ||
|
||
Лог.Ошибка(ТекстОшибки); | ||
|
||
ВызватьИсключение ТекстОшибки; | ||
|
||
КонецПроцедуры |
Oops, something went wrong.