mirror of
https://github.com/bia-technologies/yaxunit.git
synced 2024-12-03 08:45:31 +02:00
Merge branch 'develop' into feature/162
This commit is contained in:
commit
04689b27e2
@ -33,6 +33,6 @@
|
||||
|
||||
## Лицензия
|
||||
|
||||
Copyright © 2022 [BIA-Technologies Limited Liability Company](http://bia-tech.ru/)
|
||||
Copyright © 2023 [BIA-Technologies Limited Liability Company](http://bia-tech.ru/)
|
||||
|
||||
Distributed under the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.html)
|
||||
|
@ -6,6 +6,14 @@ sidebar_position: 1
|
||||
|
||||
Здесь будут собраны материалы по доработке тестового движка.
|
||||
|
||||
## Окружение
|
||||
|
||||
- Разработка ведется с использованием [1С:Enterprise Development Tools](https://edt.1c.ru/) актуальной релизной версии
|
||||
- После клонирования репозитория, необходимо подключить `precommit4onec`
|
||||
- Установить [oscript](https://oscript.io/)
|
||||
- Установить precommit4onec `opm install precommit4onec`
|
||||
- Подключить precommit4onec к репозиторию `precommit4onec install -source-dir "exts" /путь/к/склонированному/репозиторию`. Например: путь к склонированному репозиторию '/home/valery/reps/yaxunit', то команда будет `precommit4onec install -source-dir "exts" ~/reps/yaxunit`
|
||||
|
||||
## Тестирование
|
||||
|
||||
Для прогона тестов используется [доработанная демо-конфигурация](https://github.com/bia-technologies/yaxunit/tree/develop/fixtures/demo-configuration) от фирмы [1С](https://github.com/1C-Company).
|
||||
|
@ -20,14 +20,15 @@ slug: /
|
||||
|
||||
----
|
||||
|
||||
- [Назначение](#назначение)
|
||||
- [Возможности](#возможности)
|
||||
- [Пример тестового модуля](#пример-тестового-модуля)
|
||||
- [Запуск](#запуск)
|
||||
- [Запуск из EDT](#запуск-из-edt)
|
||||
- [Запуск вне EDT](#запуск-вне-edt)
|
||||
- [Благодарности](#благодарности)
|
||||
- [Лицензия](#лицензия)
|
||||
- [YAXUnit. Расширение для запуска тестов](#yaxunit-расширение-для-запуска-тестов)
|
||||
- [Назначение](#назначение)
|
||||
- [Возможности](#возможности)
|
||||
- [Пример тестового модуля](#пример-тестового-модуля)
|
||||
- [Запуск](#запуск)
|
||||
- [Запуск из EDT](#запуск-из-edt)
|
||||
- [Запуск вне EDT](#запуск-вне-edt)
|
||||
- [Благодарности](#благодарности)
|
||||
- [Лицензия](#лицензия)
|
||||
|
||||
## Назначение
|
||||
|
||||
@ -195,6 +196,6 @@ slug: /
|
||||
|
||||
## Лицензия
|
||||
|
||||
Copyright © 2022 [BIA-Technologies Limited Liability Company](http://bia-tech.ru/)
|
||||
Copyright © 2023 [BIA-Technologies Limited Liability Company](http://bia-tech.ru/)
|
||||
|
||||
Distributed under the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.html)
|
||||
|
@ -25,7 +25,7 @@
|
||||
// ВнешнийОбъект
|
||||
Функция Пауза() Экспорт
|
||||
|
||||
Возврат СоздатьКомпоненту(ОписаниеКомпонентыПауза(), Истина);
|
||||
Возврат СоздатьКомпоненту(ОписаниеКомпонентыСервисногоНазначения(), Истина);
|
||||
|
||||
КонецФункции
|
||||
|
||||
@ -36,7 +36,7 @@
|
||||
// ВнешнийОбъект
|
||||
Функция Консоль() Экспорт
|
||||
|
||||
Возврат СоздатьКомпоненту(ОписаниеКомпонентыПауза(), Истина);
|
||||
Возврат СоздатьКомпоненту(ОписаниеКомпонентыСервисногоНазначения(), Истина);
|
||||
|
||||
КонецФункции
|
||||
|
||||
@ -114,11 +114,11 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Описание компоненты реализующей паузу.
|
||||
// Описание компоненты, реализующей паузу, консоль и другие
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// см. ОписаниеКомпоненты
|
||||
Функция ОписаниеКомпонентыПауза() Экспорт
|
||||
Функция ОписаниеКомпонентыСервисногоНазначения() Экспорт
|
||||
|
||||
Возврат ОписаниеКомпоненты("ОбщийМакет.ЮТYaxUnitAddIn", "YaxUnitAddin", "Common");
|
||||
|
||||
|
@ -21,7 +21,7 @@
|
||||
Процедура ТихаяУстановкаКомпонент(ОбработчикЗавершения) Экспорт
|
||||
|
||||
ПараметрыТихойУстановки = ПараметрыТихойУстановки();
|
||||
ПараметрыТихойУстановки.Компоненты.Добавить(ЮТКомпоненты.ОписаниеКомпонентыПауза());
|
||||
ПараметрыТихойУстановки.Компоненты.Добавить(ЮТКомпоненты.ОписаниеКомпонентыСервисногоНазначения());
|
||||
ПараметрыТихойУстановки.Компоненты.Добавить(ЮТКомпоненты.ОписаниеКомпонентыРегулярныхВыражений());
|
||||
|
||||
ЮТАсинхроннаяОбработкаСлужебныйКлиент.ДобавитьОбработчикЦепочки(ПараметрыТихойУстановки,
|
||||
|
@ -13,6 +13,7 @@
|
||||
<content>CommonModule.МокитоОбучение</content>
|
||||
<content>CommonModule.МокитоПроверки</content>
|
||||
<content>CommonModule.МокитоСлужебный</content>
|
||||
<content>CommonModule.ЮТАсинхроннаяОбработкаСлужебныйКлиент</content>
|
||||
<content>CommonModule.ЮТест</content>
|
||||
<content>CommonModule.ЮТЗапросы</content>
|
||||
<content>CommonModule.ЮТЗапросыВызовСервера</content>
|
||||
@ -20,6 +21,9 @@
|
||||
<content>CommonModule.ЮТИсполнительКлиент</content>
|
||||
<content>CommonModule.ЮТИсполнительКлиентСервер</content>
|
||||
<content>CommonModule.ЮТИсполнительСервер</content>
|
||||
<content>CommonModule.ЮТКомпоненты</content>
|
||||
<content>CommonModule.ЮТКомпонентыВызовСервера</content>
|
||||
<content>CommonModule.ЮТКомпонентыКлиент</content>
|
||||
<content>CommonModule.ЮТКонструкторВариантов</content>
|
||||
<content>CommonModule.ЮТКонструкторТестовыхДанныхСлужебный</content>
|
||||
<content>CommonModule.ЮТКонтекст</content>
|
||||
@ -39,17 +43,29 @@
|
||||
<content>CommonModule.ЮТОтчетJUnit</content>
|
||||
<content>CommonModule.ЮТПараметрыЗапуска</content>
|
||||
<content>CommonModule.ЮТПовторногоИспользования</content>
|
||||
<content>CommonModule.ЮТПодражатель</content>
|
||||
<content>CommonModule.ЮТПодражатель_Банки</content>
|
||||
<content>CommonModule.ЮТПодражатель_Компании</content>
|
||||
<content>CommonModule.ЮТПодражатель_Люди</content>
|
||||
<content>CommonModule.ЮТПодражательВызовСервера</content>
|
||||
<content>CommonModule.ЮТПодражательПовтИсп</content>
|
||||
<content>CommonModule.ЮТПодражательСлужебный</content>
|
||||
<content>CommonModule.ЮТПредикаты</content>
|
||||
<content>CommonModule.ЮТПредикатыКлиентСервер</content>
|
||||
<content>CommonModule.ЮТПреобразования</content>
|
||||
<content>CommonModule.ЮТПроверкиСлужебный</content>
|
||||
<content>CommonModule.ЮТРасширения</content>
|
||||
<content>CommonModule.ЮТРегистрацияОшибок</content>
|
||||
<content>CommonModule.ЮТСобытия</content>
|
||||
<content>CommonModule.ЮТСравнениеКлиентСервер</content>
|
||||
<content>CommonModule.ЮТСравнениеСервер</content>
|
||||
<content>CommonModule.ЮТСтроки</content>
|
||||
<content>CommonModule.ЮТТестовыеДанные</content>
|
||||
<content>CommonModule.ЮТТестовыеДанные_ТаблицыЗначений</content>
|
||||
<content>CommonModule.ЮТТестовыеДанныеВызовСервера</content>
|
||||
<content>CommonModule.ЮТТестовыеДанныеСлужебный</content>
|
||||
<content>CommonModule.ЮТТесты</content>
|
||||
<content>CommonModule.ЮТТипыДанныхСлужебный</content>
|
||||
<content>CommonModule.ЮТУтверждения</content>
|
||||
<content>CommonModule.ЮТУтвержденияИБ</content>
|
||||
<content>CommonModule.ЮТФабрика</content>
|
||||
@ -59,13 +75,23 @@
|
||||
<content>CommonModule.ЮТЧитательСервер</content>
|
||||
<content>CommonPicture.ЮТНеизвестный</content>
|
||||
<content>CommonPicture.ЮТОшибка</content>
|
||||
<content>CommonPicture.ЮТПодсистема</content>
|
||||
<content>CommonPicture.ЮТПропущен</content>
|
||||
<content>CommonPicture.ЮТУпал</content>
|
||||
<content>CommonPicture.ЮТУспешно</content>
|
||||
<content>CommonPicture.ЮТЭлементыТестов</content>
|
||||
<content>DataProcessor.ЮТHTTPСервисЗапрос</content>
|
||||
<content>DataProcessor.ЮТЮнитТесты</content>
|
||||
<content>CommonTemplate.ЮТОписаниеМетаданных</content>
|
||||
<content>CommonPicture.ЮТПодсистема</content>
|
||||
<content>DataProcessor.ЮТКонструкторТестовыхДанных</content>
|
||||
<content>DataProcessor.ЮТЮнитТесты</content>
|
||||
<content>CommonTemplate.ЮТ_СловарьПодражателя_Компании_Наименования_ru</content>
|
||||
<content>CommonTemplate.ЮТ_СловарьПодражателя_Компании_ПрефиксыНаименований_ru</content>
|
||||
<content>CommonTemplate.ЮТ_СловарьПодражателя_Люди_ЖенскиеИмена_ru</content>
|
||||
<content>CommonTemplate.ЮТ_СловарьПодражателя_Люди_ЖенскиеОтчества_ru</content>
|
||||
<content>CommonTemplate.ЮТ_СловарьПодражателя_Люди_ЖенскиеФамилии_ru</content>
|
||||
<content>CommonTemplate.ЮТ_СловарьПодражателя_Люди_МужскиеИмена_ru</content>
|
||||
<content>CommonTemplate.ЮТ_СловарьПодражателя_Люди_МужскиеОтчества_ru</content>
|
||||
<content>CommonTemplate.ЮТ_СловарьПодражателя_Люди_МужскиеФамилии_ru</content>
|
||||
<content>CommonTemplate.ЮТRegEx1CAddin</content>
|
||||
<content>CommonTemplate.ЮТYaxUnitAddIn</content>
|
||||
<content>CommonTemplate.ЮТОписаниеМетаданных</content>
|
||||
</mdclass:Subsystem>
|
||||
|
3
tools/precommit/readme.md
Normal file
3
tools/precommit/readme.md
Normal file
@ -0,0 +1,3 @@
|
||||
# precommit
|
||||
|
||||
В каталоге располагаются сценарии для precommit4onec
|
173
tools/precommit/ВставкаКопирайтов.os
Normal file
173
tools/precommit/ВставкаКопирайтов.os
Normal file
@ -0,0 +1,173 @@
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Служебный модуль с реализацией сценариев обработки файлов ВставкаКопирайтов
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
Перем Лог;
|
||||
|
||||
// ИмяСценария
|
||||
// Возвращает имя сценария обработки файлов
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Строка - Имя текущего сценария обработки файлов
|
||||
//
|
||||
Функция ИмяСценария() Экспорт
|
||||
|
||||
Возврат "ВставкаКопирайтов";
|
||||
|
||||
КонецФункции // ИмяСценария()
|
||||
|
||||
// ОбработатьФайл
|
||||
// Выполняет обработку файла
|
||||
//
|
||||
// Параметры:
|
||||
// АнализируемыйФайл - Файл - Файл из журнала git для анализа
|
||||
// КаталогИсходныхФайлов - Строка - Каталог расположения исходных файлов относительно каталог репозитория
|
||||
// ДополнительныеПараметры - Структура - Набор дополнительных параметров, которые можно использовать
|
||||
// * Лог - Объект - Текущий лог
|
||||
// * ИзмененныеКаталоги - Массив - Каталоги, которые необходимо добавить в индекс
|
||||
// * КаталогРепозитория - Строка - Адрес каталога репозитория
|
||||
// * ФайлыДляПостОбработки - Массив - Файлы, изменившиеся / образовавшиеся в результате работы сценария
|
||||
// и которые необходимо дообработать
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Булево - Признак выполненной обработки файла
|
||||
//
|
||||
Функция ОбработатьФайл(АнализируемыйФайл, КаталогИсходныхФайлов, ДополнительныеПараметры) Экспорт
|
||||
|
||||
Лог = ДополнительныеПараметры.Лог;
|
||||
Если АнализируемыйФайл.Существует() И ЭтоФайлИсходников(АнализируемыйФайл) Тогда
|
||||
|
||||
ПутьКФайлуКопирайта = ОбъединитьПути(ДополнительныеПараметры.КаталогРепозитория, "COPYRIGHT");
|
||||
ФайлКопирайта = Новый Файл(ПутьКФайлуКопирайта);
|
||||
Если НЕ ФайлКопирайта.Существует() Тогда
|
||||
|
||||
Возврат ЛОЖЬ;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ДополнительныеПараметры.Свойство("АктуальныйКопирайт") Тогда
|
||||
|
||||
Текст = Новый ЧтениеТекста();
|
||||
Текст.Открыть(ПутьКФайлуКопирайта, КодировкаТекста.UTF8NoBOM);
|
||||
|
||||
ТекстКопирайта = Текст.Прочитать();
|
||||
ТекстКопирайта = СокрЛП(ТекстКопирайта);
|
||||
Текст.Закрыть();
|
||||
|
||||
РегуляркаДатыКопирайта = Новый РегулярноеВыражение("\)\.\s\d{4}-(\d{4})\.");
|
||||
РегуляркаДатыКопирайта.Многострочный = Истина;
|
||||
РегуляркаДатыКопирайта.ИгнорироватьРегистр = Истина;
|
||||
|
||||
ТекстКопирайта = РегуляркаДатыКопирайта.Заменить(ТекстКопирайта, "). 2021-" + Год(ТекущаяУниверсальнаяДата()) + ".");
|
||||
|
||||
ЗаписьТекста = Новый ЗаписьТекста(ПутьКФайлуКопирайта, КодировкаТекста.UTF8NoBOM, , , Символы.ПС);
|
||||
ЗаписьТекста.Записать(ТекстКопирайта);
|
||||
ЗаписьТекста.Закрыть();
|
||||
|
||||
ДополнительныеПараметры.ИзмененныеКаталоги.Добавить(ПутьКФайлуКопирайта);
|
||||
ДополнительныеПараметры.Вставить("АктуальныйКопирайт", Истина);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Лог.Информация("Обработка файла '%1' по сценарию '%2'", АнализируемыйФайл.ПолноеИмя, ИмяСценария());
|
||||
|
||||
Если УстановитьКопирайтПриНеобходимости(АнализируемыйФайл.ПолноеИмя, ФайлКопирайта.ПолноеИмя) Тогда
|
||||
|
||||
ДополнительныеПараметры.ИзмененныеКаталоги.Добавить(АнализируемыйФайл.ПолноеИмя);
|
||||
|
||||
// для постобработки другим сценарием
|
||||
ДополнительныеПараметры.ФайлыДляПостОбработки.Добавить(АнализируемыйФайл.ПолноеИмя);
|
||||
Возврат ИСТИНА;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Возврат ЛОЖЬ;
|
||||
|
||||
КонецФункции // ОбработатьФайл()
|
||||
|
||||
Функция ЭтоФайлИсходников(Файл)
|
||||
|
||||
Если ПустаяСтрока(Файл.Расширение) Тогда
|
||||
|
||||
Возврат Ложь;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Возврат СтрСравнить(Файл.Расширение, ".bsl") = 0;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция УстановитьКопирайтПриНеобходимости(ПутьКФайлуМодуля, ПутьКФайлуКопирайта)
|
||||
|
||||
Текст = Новый ЧтениеТекста();
|
||||
Текст.Открыть(ПутьКФайлуКопирайта, КодировкаТекста.UTF8NoBOM);
|
||||
|
||||
ТекстКопирайта = Текст.Прочитать();
|
||||
ТекстКопирайта = СокрЛП(ТекстКопирайта);
|
||||
Текст.Закрыть();
|
||||
|
||||
ТекстОшибки = "";
|
||||
РегуляркаСтороннийКод = Новый РегулярноеВыражение("(// IMPORT\s)");
|
||||
РегуляркаСтороннийКод.Многострочный = Истина;
|
||||
РегуляркаСтороннийКод.ИгнорироватьРегистр = Истина;
|
||||
|
||||
РегуляркаКопирайта = Новый РегулярноеВыражение("([\/]{2}©[\/]{2,}©[\/]{2}\s?)");
|
||||
РегуляркаКопирайта.Многострочный = Истина;
|
||||
РегуляркаКопирайта.ИгнорироватьРегистр = Истина;
|
||||
|
||||
НовыйТекстМодуля = "";
|
||||
|
||||
Текст = Новый ЧтениеТекста();
|
||||
Текст.Открыть(ПутьКФайлуМодуля, КодировкаТекста.UTF8NoBOM);
|
||||
ТекстМодуля = Текст.Прочитать();
|
||||
Текст.Закрыть();
|
||||
|
||||
Если НЕ ПустаяСтрока(ТекстМодуля) И Не РегуляркаСтороннийКод.Совпадает(ТекстМодуля) Тогда
|
||||
|
||||
КоллекцияСовпадений = РегуляркаКопирайта.НайтиСовпадения(ТекстМодуля);
|
||||
|
||||
Если КоллекцияСовпадений.Количество() = 0 Тогда
|
||||
|
||||
ТекстОшибки = "Нет копирайта в модуле";
|
||||
НовыйТекстМодуля = ТекстКопирайта + Символы.ПС + Символы.ПС + СокрЛП(ТекстМодуля);
|
||||
|
||||
ИначеЕсли КоллекцияСовпадений.Количество() <> 2 Тогда
|
||||
|
||||
Лог.Ошибка("Модуль '%1'
|
||||
|содержит несколько блоков, похожих на части копирайта.
|
||||
|Удалите лишние (либо все) блоки относящиеся к копирайту.", ПутьКФайлуМодуля);
|
||||
ВызватьИсключение "Копирайт не может быть проверен/скорректирован";
|
||||
|
||||
Иначе
|
||||
|
||||
КонецКопирайта = КоллекцияСовпадений[1].Индекс + КоллекцияСовпадений[1].Длина;
|
||||
|
||||
Если СтрСравнить(ТекстКопирайта, СокрЛП(СтрЗаменить(Лев(ТекстМодуля, КонецКопирайта), Символы.ВК, ""))) <> 0 Тогда
|
||||
|
||||
ТекстОшибки = "Неактульный копирайт";
|
||||
|
||||
НовыйТекстМодуля = ТекстКопирайта + Символы.ПС + Символы.ПС + СокрЛП(Прав(ТекстМодуля, СтрДлина(ТекстМодуля) - КонецКопирайта));
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(ТекстОшибки) Тогда
|
||||
|
||||
ЗаписьТекста = Новый ЗаписьТекста(ПутьКФайлуМодуля, КодировкаТекста.UTF8NoBOM, , , Символы.ПС);
|
||||
ЗаписьТекста.Записать(НовыйТекстМодуля);
|
||||
ЗаписьТекста.Закрыть();
|
||||
|
||||
Возврат ИСТИНА;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Возврат ЛОЖЬ;
|
||||
|
||||
КонецФункции
|
@ -39,17 +39,15 @@
|
||||
"Транспорт": "rocketchat"
|
||||
}]
|
||||
},
|
||||
"Сонар": {
|
||||
"Сервер": "c7-sonar-server.tlc.lan",
|
||||
"Порт": "9000",
|
||||
"Токен": "6c0a7cc2bf2e8f054562da6fabf3f2bf41e7a308",
|
||||
"Профили": "bsl bia; Sonar way (outdated copy)"
|
||||
},
|
||||
"СвязанныеПроекты": {
|
||||
"bsp": {
|
||||
"Репозиторий": "git@gitlab.dellin.ru:orais/bsp/bsp.git",
|
||||
"Ветка": "master",
|
||||
"Назначение": "Основная конфигурация"
|
||||
}
|
||||
},
|
||||
"Precommt4onecСценарии": {
|
||||
"ИспользоватьСценарииРепозитория": true,
|
||||
"КаталогЛокальныхСценариев": "tools\\precommit"
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user