mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2025-03-23 21:29:38 +02:00
Create tests_check.os
This commit is contained in:
parent
fa7a6199a8
commit
01bf4d0b12
99
ci/os/tests_check.os
Normal file
99
ci/os/tests_check.os
Normal file
@ -0,0 +1,99 @@
|
||||
#Использовать osparser
|
||||
|
||||
Перем ТекстТестов;
|
||||
Перем МассивМетодов;
|
||||
|
||||
Процедура ПроверитьТесты()
|
||||
|
||||
Расположение = "./src/ru/OInt";
|
||||
ФайлТестов = Расположение + "/tests/Modules/internal/OPI_Тесты.os";
|
||||
|
||||
МассивМетодов = Новый Массив;
|
||||
|
||||
МодульТестов = Новый ТекстовыйДокумент();
|
||||
МодульТестов.Прочитать(ФайлТестов);
|
||||
|
||||
ТекстТестов = МодульТестов.ПолучитьТекст();
|
||||
|
||||
ОбщийМассивМодулей = Новый Массив;
|
||||
ФайлыМодулей = НайтиФайлы(Расположение, "*.os", Истина);
|
||||
|
||||
Для Каждого Модуль Из ФайлыМодулей Цикл
|
||||
ОбщийМассивМодулей.Добавить(Модуль);
|
||||
КонецЦикла;
|
||||
|
||||
Для Каждого Модуль Из ОбщийМассивМодулей Цикл
|
||||
|
||||
ТекущийМодуль = Новый ТекстовыйДокумент();
|
||||
ТекущийМодуль.Прочитать(Модуль.ПолноеИмя);
|
||||
РазобратьМодуль(ТекущийМодуль, Модуль.ИмяБезРасширения);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Для Каждого Метод Из МассивМетодов Цикл
|
||||
Вхождения = СтрЧислоВхождений(ТекстТестов, Метод);
|
||||
|
||||
Если Вхождения = 0 Тогда
|
||||
Сообщить("Тест не реализован: " + Метод);
|
||||
ИначеЕсли Вхождения = 1 Тогда
|
||||
Сообщить("Тест встречается один раз. Возможно он реализован, но не вызван: " + Метод);
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура РазобратьМодуль(ТекущийМодуль, ИмяМодуля)
|
||||
|
||||
ТекстМодуля = ТекущийМодуль.ПолучитьТекст();
|
||||
|
||||
СтруктураОбщихДанных = Новый Структура;
|
||||
ПолучитьДанныеМодуля(СтруктураОбщихДанных, ТекущийМодуль);
|
||||
|
||||
Если Не ЗначениеЗаполнено(СтруктураОбщихДанных["Библиотека"]) Тогда
|
||||
Возврат;
|
||||
КонеЦесли;
|
||||
|
||||
ТекущаяБиблиотека = СтруктураОбщихДанных["Библиотека"];
|
||||
|
||||
Парсер = Новый ПарсерВстроенногоЯзыка;
|
||||
СтруктураМодуля = Парсер.Разобрать(ТекстМодуля);
|
||||
|
||||
Для Каждого Метод Из СтруктураМодуля.Объявления Цикл
|
||||
|
||||
Если Метод.Тип = "ОбъявлениеМетода" И Метод.Сигнатура.Экспорт = Истина Тогда
|
||||
МассивМетодов.Добавить(СтрЗаменить(ТекущаяБиблиотека, " ", "") + "_" + Метод.Сигнатура.Имя);
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПолучитьДанныеМодуля(СтруктураОбщихДанных, ТекущийМодуль)
|
||||
|
||||
Имя = ТекущийМодуль.ПолучитьСтроку(2);
|
||||
CLI = ТекущийМодуль.ПолучитьСтроку(3);
|
||||
|
||||
Если СтрНайти(Имя, "Lib") = 0 Тогда
|
||||
Имя = "";
|
||||
Иначе
|
||||
Имя = СтрЗаменить(Имя, "// Lib:", "");
|
||||
Имя = СокрЛП(Имя);
|
||||
КонецЕсли;
|
||||
|
||||
Если СтрНайти(CLI, "CLI") = 0 Тогда
|
||||
CLI = "none";
|
||||
Иначе
|
||||
CLI = СтрЗаменить(CLI, "// CLI:", "");
|
||||
CLI = СокрЛП(CLI);
|
||||
КонецЕсли;
|
||||
|
||||
Каталог = СтрЗаменить(Имя, " ", "_");
|
||||
|
||||
СтруктураОбщихДанных.Вставить("Библиотека", Имя);
|
||||
СтруктураОбщихДанных.Вставить("Команда" , CLI);
|
||||
СтруктураОбщихДанных.Вставить("Каталог" , Каталог);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
ПроверитьТесты();
|
Loading…
x
Reference in New Issue
Block a user