1
0
mirror of https://github.com/bia-technologies/precommit4onec.git synced 2024-11-24 08:32:25 +02:00

#ONECICD-20

Доработал сценарий, добавил файлы для теста, и набросок теста
This commit is contained in:
Medvedev Dmitriy 2019-03-06 19:19:42 +03:00
parent 916200b353
commit 91b34b11f1
4 changed files with 122 additions and 15 deletions

View File

@ -0,0 +1,7 @@
# language: ru
Функциональность: Выполнение сценариев обработки прекоммита
Как разработчик
Я хочу иметь возможность выполнять сценарии обработки прекоммита
Чтобы сценарии анализировали файлы коммита

View File

@ -3,6 +3,7 @@
// Служебный модуль с реализацией сценариев обработки файлов <ИмяСценария>
//
///////////////////////////////////////////////////////////////////////////////
Перем Лог;
// ИмяСценария
// Возвращает имя сценария обработки файлов
@ -32,22 +33,22 @@
// Возвращаемое значение:
// Булево - Признак выполненной обработки файла
//
Функция ОбработатьФайл(АнализируемыйФайл, КаталогИсходныхФайлов, ДополнительныеПараметры) Экспорт
//Функция ОбработатьФайл(АнализируемыйФайл, КаталогИсходныхФайлов, ДополнительныеПараметры) Экспорт
//
// Лог = ДополнительныеПараметры.Лог;
// НастройкиСценария = ДополнительныеПараметры.УправлениеНастройками.Настройка("Precommt4onecСценарии\НастройкиСценариев").Получить(ИмяСценария());
// Если АнализируемыйФайл.Существует() И ТипыФайлов.ЭтоФайлИсходников(АнализируемыйФайл) Тогда
// Лог.Информация("Обработка файла '%1' по сценарию '%2'", АнализируемыйФайл.ПолноеИмя, ИмяСценария());
// ПроверитьНаДублированиеМетодов(АнализируемыйФайл.ПолноеИмя);
// Возврат Истина;
// КонецЕсли;
Лог = ДополнительныеПараметры.Лог;
НастройкиСценария = ДополнительныеПараметры.УправлениеНастройками.Настройка("Precommt4onecСценарии\НастройкиСценариев").Получить(ИмяСценария());
Если АнализируемыйФайл.Существует() И ТипыФайлов.ЭтоФайлИсходников(АнализируемыйФайл) Тогда
Лог.Информация("Обработка файла '%1' по сценарию '%2'", АнализируемыйФайл.ПолноеИмя, ИмяСценария());
ПроверитьНаДублированиеМетодов(АнализируемыйФайл.ПолноеИмя);
Возврат Истина;
КонецЕсли;
Возврат Ложь;
// Возврат Ложь;
КонецФункции // ОбработатьФайл()
//КонецФункции // ОбработатьФайл()
// ОбработатьФайл
// Выполняет поиск дублей имен процедур и функций файла
@ -65,15 +66,50 @@
ТекстОшибки = "";
ШаблонПоиска = Новый РегулярноеВыражение("^(?:Процедура|Функция|procedure|function)\s+?([а-яА-ЯёЁ0-9_\w]+?)\s*?\(\)");
ШаблонПоиска = Новый РегулярноеВыражение("^\s*(?:Процедура|Функция|procedure|function)\s+?([а-яА-ЯёЁ0-9_\w]+?)\s*?\(\)");
ШаблонПоиска.Многострочный = Истина;
ШаблонПоиска.ИгнорироватьРегистр = Истина;
Если НЕ ПустаяСтрока(ТекстМодуля) Тогда
Совпадения = ШаблонПоиска.НайтиСовпадения(ТекстМодуля);
Если Совпадения.Количество() Тогда
ТЗПроцедуры = Новый ТаблицаЗначений;
ТЗПроцедуры.Колонки.Добавить("Процедура");
ТЗПроцедуры.Колонки.Добавить("Количество");
Для Каждого Совпадение Из Совпадения Цикл
СтрокаТЗ = ТЗПроцедуры.Добавить();
СтрокаТЗ.Процедура = НРЕГ(Совпадение.Группы[1].Значение);
СтрокаТЗ.Количество = 1;
КонецЦикла;
КоличествоПроцедур = ТЗПроцедуры.Количество();
ТЗПроцедуры.Свернуть("Процедура", "Количество");
КоличествоУникальных = ТЗПроцедуры.Количество();
Если КоличествоПроцедур <> КоличествоУникальных Тогда
ТекстОшибки = СтрШаблон("В файле '%1' обнаружены неуникальные имена методов " + Символы.ПС, ПутьКФайлуМодуля);
Для Каждого СтрокаТЗ Из ТЗПроцедуры Цикл
ТекстОшибки = ТекстОшибки + ?(СтрокаТЗ.Количество > 1, СтрокаТЗ.Процедура + Символы.ПС, "");
КонецЦикла;
//Лог.Ошибка(ТекстОшибки);
ВызватьИсключение ТекстОшибки;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
ПроверитьНаДублированиеМетодов("C:\reps\precommit1C-fork-bia\src\СценарииОбработки\Модуль.bsl");

View File

@ -0,0 +1,34 @@
Процедура Проц() Экспорт
КонецПроцедуры
//ПРоцедура Проц()
Функция Проц() Экспорт
КонецПроцедуры // Процедура проц()
Процедура УпроститьLevel() Экспорт
КонецПроцедуры
Процедура level_Forma1t() Экспорт
КонецПроцедуры
Процедура Проц1_() Экспорт
КонецПроцедуры
Процедура _Проц12() Экспорт
КонецПроцедуры
пРоцедура проц2 (парам1)
КонецПроцедуры;
Функция функё1() Экспорт
КонецФункции
Процедура ПРоц3()
КонецПроцедуры
Функция Функ1()
КонецФункции
Функция _Функ1()
КонецФункции

View File

@ -0,0 +1,30 @@
Процедура Проц() Экспорт
КонецПроцедуры
Процедура УпроститьLevel() Экспорт
КонецПроцедуры
Процедура level_Forma1t() Экспорт
КонецПроцедуры
Процедура Проц1_() Экспорт
КонецПроцедуры
Процедура _Проц12() Экспорт
КонецПроцедуры
пРоцедура проц2 (парам1)
КонецПроцедуры;
Функция функё1() Экспорт
КонецФункции
Процедура ПРоц3()
КонецПроцедуры
Функция Функ1()
КонецФункции
Функция _Функ1()
КонецФункции