mirror of
https://github.com/bia-technologies/precommit4onec.git
synced 2025-01-18 02:58:35 +02:00
#ONECICD-147
Тесты и найденные проблемы
This commit is contained in:
parent
1796c42d1a
commit
5e6f6c758a
@ -65,21 +65,17 @@
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
НастройкиПроектов = УправлениеНастройками.ПолучитьПроектыКонфигурации();
|
||||
НастройкиПроектов = МенеджерНастроек.ПроектыКонфигурации();
|
||||
НаборНастроек = Новый Соответствие;
|
||||
|
||||
Для Каждого ЭлементНастройки Из НастройкиПроектов Цикл
|
||||
Настройка = Новый Структура("СценарииОбработки, НастройкиСценариев");
|
||||
|
||||
Настройка.СценарииОбработки = ЗагрузитьСценарииОбработки(Приложение.КаталогСценариев(),
|
||||
УправлениеНастройками,
|
||||
КаталогРепозитория,
|
||||
ЭлементНастройки);
|
||||
Настройка.НастройкиСценариев = УправлениеНастройками.НастройкиПриложения(ЭлементНастройки);
|
||||
НаборНастроек.Вставить(ЭлементНастройки, Настройка);
|
||||
Для Каждого ИмяПроекта Из НастройкиПроектов Цикл
|
||||
|
||||
НаборНастроек.Вставить(ИмяПроекта, НастройкаОбработкиПроекта(ИмяПроекта, КаталогРепозитория));
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
НаборНастроек.Вставить("", НастройкаОбработкиПроекта("", КаталогРепозитория));
|
||||
|
||||
ЖурналИзменений = ПолучитьЖурналИзменений();
|
||||
|
||||
ПараметрыОбработки = Новый Структура("ФайлыДляПостОбработки, ИзмененныеКаталоги, КаталогРепозитория, ТекущийКаталогИсходныхФайлов, Настройки",
|
||||
@ -109,6 +105,20 @@
|
||||
|
||||
КонецФункции // ВыполнитьКоманду
|
||||
|
||||
Функция НастройкаОбработкиПроекта(ИмяПроекта, КаталогРепозитория)
|
||||
|
||||
Настройка = Новый Структура("СценарииОбработки, НастройкиСценариев");
|
||||
|
||||
Настройка.СценарииОбработки = ЗагрузитьСценарииОбработки(МенеджерПриложения.КаталогСценариев(),
|
||||
КаталогРепозитория,
|
||||
ИмяПроекта);
|
||||
|
||||
Настройка.НастройкиСценариев = МенеджерНастроек.НастройкиПроекта(ИмяПроекта);
|
||||
|
||||
Возврат Настройка;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ВыполнитьОбработкуФайлов(Файлы, НаборНастроек, ПараметрыОбработки)
|
||||
|
||||
КаталогРепозитория = ПараметрыОбработки.КаталогРепозитория;
|
||||
@ -120,8 +130,16 @@
|
||||
|
||||
ИмяФайла = ФайловыеОперации.ПолучитьНормализованныйОтносительныйПуть(КаталогРепозитория,
|
||||
СтрЗаменить(АнализируемыйФайл.ПолноеИмя, КаталогРепозитория, ""));
|
||||
|
||||
НастройкаОбработки = МенеджерНастроек.НастройкаДляФайла(ИмяФайла);
|
||||
|
||||
ИмяПроекта = МенеджерНастроек.ИмяПроектаДляФайла(ИмяФайла);
|
||||
|
||||
НастройкаОбработки = НаборНастроек[ИмяПроекта];
|
||||
|
||||
Если НЕ ЗначениеЗаполнено(НастройкаОбработки) Тогда
|
||||
|
||||
ВызватьИсключение СтрШаблон("Не удалось получить настройки для %1", ИмяФайла);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
СценарииОбработки = НастройкаОбработки.СценарииОбработки;
|
||||
НастройкиСценариев = НастройкаОбработки.НастройкиСценариев;
|
||||
@ -211,7 +229,7 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ЗагрузитьСценарииОбработки(ТекущийКаталогСценариев, УправлениеНастройками, КаталогРепозитория, Проект)
|
||||
Функция ЗагрузитьСценарииОбработки(ТекущийКаталогСценариев, КаталогРепозитория, Проект)
|
||||
|
||||
СценарииОбработки = Новый Массив;
|
||||
ФайлыГлобальныхСценариев = НайтиФайлы(ТекущийКаталогСценариев, "*.os");
|
||||
@ -219,7 +237,7 @@
|
||||
|
||||
ИменаЗагружаемыхСценариев = МенеджерНастроек.ИменаЗагружаемыхСценариев(Проект);
|
||||
|
||||
Если НЕ УправлениеНастройками.ЭтоНовый() Тогда
|
||||
Если НЕ МенеджерНастроек.ЭтоНовый() Тогда
|
||||
|
||||
Лог.Информация("Читаем настройки " + Проект);
|
||||
|
||||
|
@ -164,7 +164,7 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция НастройкиПроекта(Подпроект) Экспорт
|
||||
Функция НастройкиПроекта(Подпроект = "") Экспорт
|
||||
|
||||
Если ИспользуютсяЛокальныеНастройки Тогда
|
||||
|
||||
@ -182,6 +182,12 @@
|
||||
|
||||
Функция НастройкаДляФайла(Знач ОтносительноеИмяФайла) Экспорт
|
||||
|
||||
Возврат НастройкиПроекта(ИмяПроектаДляФайла(ОтносительноеИмяФайла));
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ИмяПроектаДляФайла(Знач ОтносительноеИмяФайла) Экспорт
|
||||
|
||||
Если СтрНачинаетсяС(ОтносительноеИмяФайла, "/") ИЛИ СтрНачинаетсяС(ОтносительноеИмяФайла, "\") Тогда
|
||||
|
||||
ОтносительноеИмяФайла = Сред(ОтносительноеИмяФайла, 2);
|
||||
@ -198,16 +204,29 @@
|
||||
|
||||
Если НормализованноеИмяПроекта = НормализованноеИмяФайла Тогда
|
||||
|
||||
Возврат НастройкиПроекта(ИмяПроекта);
|
||||
Возврат ИмяПроекта;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат НастройкиПроекта("");
|
||||
Возврат "";
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ЭтоНовый() Экспорт
|
||||
|
||||
Если ИспользуютсяЛокальныеНастройки() Тогда
|
||||
|
||||
Возврат ЛокальныеНастройки.ЭтоНовый();
|
||||
|
||||
Иначе
|
||||
|
||||
Возврат ГлобальныеНастройки.ЭтоНовый();
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецФункции
|
||||
///////////////////////////////////////////////////////////////////
|
||||
// СЛУЖЕБНЫЙ ФУНКЦИОНАЛ
|
||||
///////////////////////////////////////////////////////////////////
|
||||
|
2
tests/fixtures/v8config.json
vendored
2
tests/fixtures/v8config.json
vendored
@ -1,5 +1,5 @@
|
||||
{
|
||||
"Precommit4onecСценарии": {
|
||||
"Precommt4onecСценарии": {
|
||||
"ИспользоватьСценарииРепозитория": true,
|
||||
"КаталогЛокальныхСценариев": "localscenario",
|
||||
"ГлобальныеСценарии": [],
|
||||
|
@ -10,6 +10,8 @@
|
||||
// Основная точка входа
|
||||
Функция ПолучитьСписокТестов(ЮнитТестирование) Экспорт
|
||||
|
||||
ПередЗапускомТестов();
|
||||
|
||||
юТест = ЮнитТестирование;
|
||||
|
||||
ВсеТесты = Новый Массив;
|
||||
@ -18,19 +20,24 @@
|
||||
ВсеТесты.Добавить("Тест_ИспользованиеЛокальныхНастроек");
|
||||
ВсеТесты.Добавить("Тест_ОтключенныеНастройки");
|
||||
ВсеТесты.Добавить("Тест_ОтключенныеНастройкиИПереопределенныеГлобальныеСценарии");
|
||||
|
||||
ВсеТесты.Добавить("Тест_НастройкиПроектов");
|
||||
|
||||
Возврат ВсеТесты;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ПередЗапускомТестов()
|
||||
|
||||
Процедура ПередЗапускомТеста() Экспорт
|
||||
|
||||
МенеджерПриложения.Инициализировать(ПараметрыПриложения);
|
||||
|
||||
ВремТестер = Новый Тестер;
|
||||
Лог = Логирование.ПолучитьЛог(ВремТестер.ИмяЛога());
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПередЗапускомТеста() Экспорт
|
||||
|
||||
ВключитьПоказОтладки();
|
||||
|
||||
МенеджерВременныхФайлов = Новый МенеджерВременныхФайлов;
|
||||
@ -118,6 +125,81 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Тест_НастройкиПроектов() Экспорт
|
||||
|
||||
ВсеСценарии = МенеджерНастроек.ПолучитьИменаСценариевКаталога(МенеджерПриложения.КаталогСценариев());
|
||||
|
||||
НастройкиПрекоммит = ЗагрузитьНастройкиИзФикстуры("v8configПроекты.json");
|
||||
|
||||
Ожидаем.Что(МенеджерНастроек.ПроектыКонфигурации(), "Не найден проект настроек").Содержит("configuration");
|
||||
Ожидаем.Что(МенеджерНастроек.ПроектыКонфигурации(), "Не найден проект настроек").Содержит("ext/extension1");
|
||||
|
||||
ПроверитьЗначение("ИспользоватьСценарииРепозитория", "configuration", Ложь);
|
||||
ПроверитьЗначение("ИспользоватьСценарииРепозитория", "ext/extension1", Истина);
|
||||
ПроверитьЗначение("ИспользоватьСценарииРепозитория", "ext/extension2", Истина, "Несуществующий проект");
|
||||
|
||||
ПроверитьЗначение("КаталогЛокальныхСценариев", "ext/extension1", "localscenario");
|
||||
ПроверитьЗначение("КаталогЛокальныхСценариев", "ext/extension2", "", "Несуществующий проект");
|
||||
|
||||
Сценарии = МенеджерНастроек.ИменаЗагружаемыхСценариев("configuration");
|
||||
Ожидаем.Что(Сценарии.Количество(), "Сценарии проекта 'configuration'").Равно(0);
|
||||
|
||||
Сценарии = МенеджерНастроек.ИменаЗагружаемыхСценариев("ext/extension1");
|
||||
Ожидаем.Что(Сценарии.Количество(), "Сценарии проекта 'ext/extension1'").Равно(ВсеСценарии.Количество());
|
||||
|
||||
Сценарии = МенеджерНастроек.ИменаЗагружаемыхСценариев("ext/extension2");
|
||||
Ожидаем.Что(Сценарии.Количество(), "Сценарии проекта 'ext/extension2' несуществующий проект").Равно(ВсеСценарии.Количество() - 1);
|
||||
|
||||
НастройкаConfiguration = МенеджерНастроек.НастройкиПроекта("configuration");
|
||||
Ожидаем.Что(НастройкаConfiguration,
|
||||
"Не корректные настройки проекта")
|
||||
.Не_().Равно(НастройкиПрекоммит);
|
||||
|
||||
НастройкаExtension1 = МенеджерНастроек.НастройкиПроекта("ext/extension1");
|
||||
Ожидаем.Что(НастройкаExtension1,
|
||||
"Не корректные настройки проекта")
|
||||
.Не_().Равно(НастройкиПрекоммит);
|
||||
Ожидаем.Что(МенеджерНастроек.НастройкиПроекта("configuration2"),
|
||||
"Не корректные настройки проекта. Для отсутствующего проекта должны возвращаться общие настройки")
|
||||
.Равно(НастройкиПрекоммит);
|
||||
|
||||
ВариантыПроверки = Новый ТаблицаЗначений();
|
||||
ВариантыПроверки.Колонки.Добавить("ИмяФайла");
|
||||
ВариантыПроверки.Колонки.Добавить("Настройка");
|
||||
ДобавитьВариантНастройки(ВариантыПроверки, "configuration\module.bsl", НастройкаConfiguration);
|
||||
ДобавитьВариантНастройки(ВариантыПроверки, "ext\extension1\module.bsl", НастройкаExtension1);
|
||||
ДобавитьВариантНастройки(ВариантыПроверки, "\confiGuration\module.bsl", НастройкаConfiguration);
|
||||
ДобавитьВариантНастройки(ВариантыПроверки, "test\module.bsl", НастройкиПрекоммит);
|
||||
ДобавитьВариантНастройки(ВариантыПроверки, "module.bsl", НастройкиПрекоммит);
|
||||
ДобавитьВариантНастройки(ВариантыПроверки, "", НастройкиПрекоммит);
|
||||
|
||||
Для каждого Вариант Из ВариантыПроверки Цикл
|
||||
|
||||
Ожидаем.Что(МенеджерНастроек.НастройкаДляФайла(Вариант.ИмяФайла),
|
||||
СтрШаблон("Не верно определена настройка для файла '%1'", Вариант.ИмяФайла))
|
||||
.Равно(Вариант.Настройка);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ДобавитьВариантНастройки(Варианты, Значение1, Значение2)
|
||||
|
||||
Строка = Варианты.Добавить();
|
||||
|
||||
Строка[0] = Значение1;
|
||||
Строка[1] = Значение2;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПроверитьЗначение(Ключ, Проект, ОжидаемоеЗначение, Дополнение = "")
|
||||
|
||||
Ожидаем.Что(МенеджерНастроек.ЗначениеНастройки(Ключ, Проект),
|
||||
СтрШаблон("Не верное значение настройки '%1.%2' %3", Проект, Ключ, Дополнение))
|
||||
.Равно(ОжидаемоеЗначение);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#Область Служебные
|
||||
|
||||
Процедура ПроверитьОжидаемыеСценарии(ГлобальныеСценарии, ОжидаемыеСценарии)
|
||||
|
@ -34,5 +34,43 @@
|
||||
"ВерсияПлатформы": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"Precommit4onecСценарии": {
|
||||
"General": {
|
||||
"ИспользоватьСценарииРепозитория": false,
|
||||
"КаталогЛокальныхСценариев": "",
|
||||
"ГлобальныеСценарии": [
|
||||
"ДобавлениеПробеловПередКлючевымиСловами.os",
|
||||
"ЗапретИспользованияПерейти.os",
|
||||
"ИсправлениеНеКаноническогоНаписания.os",
|
||||
"КорректировкаXMLФорм.os",
|
||||
"ОтключениеПолнотекстовогоПоиска.os",
|
||||
"ПроверкаДублейПроцедурИФункций.os",
|
||||
"ПроверкаКорректностиОбластей.os",
|
||||
"РазборОбычныхФормНаИсходники.os",
|
||||
"РазборОтчетовОбработокРасширений.os",
|
||||
"СинхронизацияОбъектовМетаданныхИФайлов.os",
|
||||
"СортировкаДереваМетаданных.os",
|
||||
"УдалениеДублейМетаданных.os",
|
||||
"УдалениеЛишнихКонцевыхПробелов.os",
|
||||
"УдалениеЛишнихПустыхСтрок.os"
|
||||
],
|
||||
"ОтключенныеСценарии": [],
|
||||
"НастройкиСценариев": {
|
||||
"ОтключениеПолнотекстовогоПоиска": {
|
||||
"МетаданныеДляИсключения": {
|
||||
"src\\_example.xml": [
|
||||
"Номер",
|
||||
"ТабличнаяЧасть1.Реквизит"
|
||||
],
|
||||
"src\\_example2.xml": []
|
||||
}
|
||||
},
|
||||
"РазборОтчетовОбработокРасширений": {
|
||||
"ИспользоватьНастройкиПоУмолчанию": true,
|
||||
"ВерсияПлатформы": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user