Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Исправлена ошибка синтакс-контроля, если замечание не в исключениях #533

Merged
merged 1 commit into from
Dec 28, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
66 changes: 66 additions & 0 deletions features/ПроверкаСинтаксиса.feature
Original file line number Diff line number Diff line change
Expand Up @@ -295,3 +295,69 @@
| МодульУправляемогоПриложения(2,13)}: Переменная не определена (Итина) |
| Неопознанный оператор |
| {Справочник.Справочник1.МодульОбъекта(2,10)}: Неопознанный оператор |

Сценарий: Синтаксическая проверка базы с исключениями - есть ошибка не в исключениях
Допустим Я очищаю параметры команды "oscript" в контексте

И Я создаю каталог "out-my/allure-my"

И Я копирую каталог "cfbad" из каталога "tests/fixtures" проекта в рабочий каталог
И Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os init-dev --src ./cfbad --nocacheuse --ibconnection /F./build/ib --language ru"

Когда Я создаю файл "build/exclude.txt" с текстом
"""
{МодульУправляемогоПриложения(2,13)}: Переменная не определена (Итина)
{Справочник.Справочник1.МодульОбъекта(2,10)}: Неопознанный оператор
"""
# {Справочник.Справочник1.Форма.УпрФормаСписка.Форма(2,13)}: Переменная не определена (Истиа)

Когда Я очищаю параметры команды "oscript" в контексте

Когда Я добавляю параметр "<КаталогПроекта>/src/main.os syntax-check" для команды "oscript"
И Я добавляю параметр "--ibconnection /Fbuild/ib" для команды "oscript"
И Я добавляю параметр "--language ru" для команды "oscript"
И Я добавляю параметр "--exception-file build/exclude.txt" для команды "oscript"
И Я добавляю параметр "--mode -ThinClient -WebClient -Server -ExternalConnection -ThickClientOrdinaryApplication" для команды "oscript"
Когда Я выполняю команду "oscript"
И Я показываю вывод команды
И Код возврата равен 1
И Вывод команды "oscript" содержит
| {Справочник.Справочник1.Форма.УпрФормаСписка.Форма(2,13)}: Переменная не определена (Истиа) |
# И Вывод команды "oscript" не содержит
# | МодульУправляемогоПриложения(2,13)}: Переменная не определена (Итина) |
# | Неопознанный оператор |
# # | {Справочник.Справочник1.МодульОбъекта(2,10)}: Неопознанный оператор |

Сценарий: Синтаксическая проверка базы с исключениями с группировкой по метаданным - есть ошибка не в исключениях
И Я сохраняю значение "DEBUG" в переменную окружения "LOGOS_LEVEL"
Дано я включаю отладку лога с именем "oscript.app.vanessa-runner"
Допустим Я очищаю параметры команды "oscript" в контексте

И Я создаю каталог "out-my/allure-my"

И Я копирую каталог "cfbad" из каталога "tests/fixtures" проекта в рабочий каталог
И Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os init-dev --src ./cfbad --nocacheuse --ibconnection /F./build/ib --language ru"

Когда Я создаю файл "build/exclude.txt" с текстом
"""
{МодульУправляемогоПриложения(2,13)}: Переменная не определена (Итина)
{Справочник.Справочник1.МодульОбъекта(2,10)}: Неопознанный оператор
"""
# {Справочник.Справочник1.Форма.УпрФормаСписка.Форма(2,13)}: Переменная не определена (Истиа)

Когда Я очищаю параметры команды "oscript" в контексте

Когда Я добавляю параметр "<КаталогПроекта>/src/main.os syntax-check" для команды "oscript"
И Я добавляю параметр "--ibconnection /Fbuild/ib" для команды "oscript"
И Я добавляю параметр "--language ru" для команды "oscript"
И Я добавляю параметр "--groupbymetadata" для команды "oscript"
И Я добавляю параметр "--exception-file build/exclude.txt" для команды "oscript"
И Я добавляю параметр "--mode -ThinClient -WebClient -Server -ExternalConnection -ThickClientOrdinaryApplication" для команды "oscript"
Когда Я выполняю команду "oscript"
И Я показываю вывод команды
И Код возврата равен 1
И Вывод команды "oscript" содержит
| Справочник.Справочник1.Форма.УпрФормаСписка.Форма(2,13)}: Переменная не определена (Истиа) |
# И Вывод команды "oscript" не содержит
# | МодульУправляемогоПриложения(2,13)}: Переменная не определена (Итина) |
# | Неопознанный оператор |
Original file line number Diff line number Diff line change
Expand Up @@ -247,9 +247,12 @@

Если ЗначениеЗаполнено(ОставшиесяОшибки) Тогда

ОписаниеОшибкиТеста = ШаблонОписанияОшибки("Синтаксическая проверка конфигурации", ОбработанныйЛог);
ДополнитьРезультатТекстомОшибки(РезультатТестирования, ОписаниеОшибкиТеста, ПользовательскиеИсключения,
ОбработанныйЛог, Параметры.НеПоказыватьИсключения);
Для Каждого ТекСтрока Из ОставшиесяОшибки Цикл

ОписаниеОшибки = ШаблонОписанияОшибки(ИмяТестСценарияПредыдущаяСтрока, ТекСтрока);
ДополнитьРезультатТекстомОшибки(РезультатТестирования, ОписаниеОшибки, ПользовательскиеИсключения,
ТекСтрока, Параметры.НеПоказыватьИсключения);
КонецЦикла;
КонецЕсли;

Возврат РезультатТестирования;
Expand Down Expand Up @@ -280,9 +283,13 @@

Результат = Новый Массив;
Для каждого КлючЗначение Из РезультатТестирования["Ошибки"] Цикл
Для каждого ОписаниеОшибки Из КлючЗначение.Значение.Получить("Ошибка") Цикл
Ошибка = КлючЗначение.Значение.Получить("Ошибка");
Если Не ЗначениеЗаполнено(Ошибка) Тогда
Продолжить;
КонецЕсли;
Для каждого ОписаниеОшибки Из Ошибка Цикл
Если ОписаниеОшибки["ТипОшибки"] = "Ошибка" Тогда
Результат.Добавить(ОписаниеОшибки["ТекстОшибки"]);
Результат.Добавить(ОписаниеОшибки["ИсходныйТекстОшибки"]);
КонецЕсли;
КонецЦикла;
КонецЦикла;
Expand Down Expand Up @@ -407,7 +414,11 @@

Функция ПолучитьОписаниеОшибки(Знач СтрокаЛога, ИмяПоУмолчанию)

ИсходныйТекстОшибки = СтрокаЛога;

Результат = ШаблонОписанияОшибки(ИмяПоУмолчанию);
Результат.ИсходныйТекстОшибки = ИсходныйТекстОшибки;

ЧастиСтрокиЛога = СтрРазделить(СокрЛП(СтрокаЛога), " ", Ложь);
Если ЧастиСтрокиЛога.Количество() Тогда

Expand Down Expand Up @@ -451,8 +462,8 @@

Функция ШаблонОписанияОшибки(ИмяПоУмолчанию, ТекстОшибки = "", НомерСтроки = 0, ТипОшибки = "Ошибка")

Возврат Новый Структура("ТекстОшибки, ИмяГруппы, НомерСтроки, ТипОшибки", ТекстОшибки, ИмяПоУмолчанию,
НомерСтроки, ТипОшибки);
Возврат Новый Структура("ТекстОшибки, ИмяГруппы, НомерСтроки, ТипОшибки, ИсходныйТекстОшибки",
ТекстОшибки, ИмяПоУмолчанию, НомерСтроки, ТипОшибки, ТекстОшибки);

КонецФункции

Expand Down