1
0
mirror of https://github.com/bia-technologies/yaxunit.git synced 2024-11-30 08:36:50 +02:00

perf: Оптимизация запуска выделенных тестов из формы

This commit is contained in:
Aleksey Ko 2024-08-05 17:42:06 +03:00
parent 84a09ddc2b
commit 017937b14d
2 changed files with 27 additions and 20 deletions

View File

@ -143,13 +143,13 @@
ТипИсточника = ТипЗнч(Источник);
Если ЮТТипыДанныхСлужебный.ЭтоСтруктура(ТипИсточника) Тогда
Приемник = СкопироватьСтруктуру(Источник);
Приемник = СкопироватьСтруктуру(Источник, Истина);
ИначеЕсли ЮТТипыДанныхСлужебный.ЭтоСоответствие(ТипИсточника) Тогда
Приемник = СкопироватьСоответствие(Источник);
Приемник = СкопироватьСоответствие(Источник, Истина);
ИначеЕсли ЮТТипыДанныхСлужебный.ЭтоМассива(ТипИсточника) Тогда
Приемник = СкопироватьМассив(Источник);
Приемник = СкопироватьМассив(Источник, Истина);
ИначеЕсли ТипИсточника = Тип("СписокЗначений") Тогда
Приемник = СкопироватьСписокЗначений(Источник);
Приемник = СкопироватьСписокЗначений(Источник, Истина);
Иначе
СкопироватьПрисвоением = Истина;
@ -177,15 +177,15 @@
//
// Параметры:
// Источник - Структура, ФиксированнаяСтруктура - копируемая структура
//
// Рекурсивно - Булево - Создание "глубокой" копии, с копирование вложенных элементов
// Возвращаемое значение:
// Структура - копия исходной структуры.
Функция СкопироватьСтруктуру(Источник) Экспорт
Функция СкопироватьСтруктуру(Источник, Рекурсивно = Истина) Экспорт
Результат = Новый Структура;
Для Каждого КлючИЗначение Из Источник Цикл
Результат.Вставить(КлючИЗначение.Ключ, СкопироватьРекурсивно(КлючИЗначение.Значение));
Результат.Вставить(КлючИЗначение.Ключ, ?(Рекурсивно, СкопироватьРекурсивно(КлючИЗначение.Значение), КлючИЗначение.Значение));
КонецЦикла;
Возврат Результат;
@ -197,19 +197,24 @@
// Параметры:
// Источник - Соответствие из Произвольный
// - ФиксированноеСоответствие из Произвольный
// Рекурсивно - Булево - Создание "глубокой" копии, с копирование вложенных элементов
//
// Возвращаемое значение:
// Соответствие Из Произвольный - копия исходного соответствия.
//
Функция СкопироватьСоответствие(Источник) Экспорт
Функция СкопироватьСоответствие(Источник, Рекурсивно = Истина) Экспорт
Результат = Новый Соответствие;
Для Каждого КлючИЗначение Из Источник Цикл
НовыйКлюч = СкопироватьРекурсивно(КлючИЗначение.Ключ);
НовоеЗначение = СкопироватьРекурсивно(КлючИЗначение.Значение);
Результат.Вставить(НовыйКлюч, НовоеЗначение);
Если Рекурсивно Тогда
НовыйКлюч = СкопироватьРекурсивно(КлючИЗначение.Ключ);
НовоеЗначение = СкопироватьРекурсивно(КлючИЗначение.Значение);
Результат.Вставить(НовыйКлюч, НовоеЗначение);
Иначе
Результат.Вставить(КлючИЗначение.Ключ, КлючИЗначение.Значение);
КонецЕсли;
КонецЦикла;
@ -222,10 +227,11 @@
// Параметры:
// Источник - Массив Из Произвольный
// - ФиксированныйМассив из Произвольный
// Рекурсивно - Булево - Создание "глубокой" копии, с копирование вложенных элементов
//
// Возвращаемое значение:
// Массив Из Произвольный - копия исходного массива.
Функция СкопироватьМассив(Источник) Экспорт
Функция СкопироватьМассив(Источник, Рекурсивно = Истина) Экспорт
Если НЕ ЗначениеЗаполнено(Источник) Тогда
Возврат Новый Массив;
@ -235,7 +241,7 @@
Результат = Новый Массив(Размер);
Для Инд = 0 По Размер - 1 Цикл
Результат[Инд] = СкопироватьРекурсивно(Источник[Инд]);
Результат[Инд] = ?(Рекурсивно, СкопироватьРекурсивно(Источник[Инд]), Источник[Инд]);
КонецЦикла;
Возврат Результат;
@ -246,18 +252,19 @@
//
// Параметры:
// Источник - СписокЗначений Из Произвольный
// Рекурсивно - Булево - Создание "глубокой" копии, с копирование вложенных элементов
//
// Возвращаемое значение:
// СписокЗначений Из Произвольный
//
Функция СкопироватьСписокЗначений(Источник) Экспорт
Функция СкопироватьСписокЗначений(Источник, Рекурсивно = Истина) Экспорт
Результат = Новый СписокЗначений;
Для Каждого ЭлементСписка Из Источник Цикл
НовоеЗначение = СкопироватьРекурсивно(ЭлементСписка.Значение);
Результат.Добавить(НовоеЗначение, ЭлементСписка.Представление, ЭлементСписка.Пометка, ЭлементСписка.Картинка);
Значение = ?(Рекурсивно, СкопироватьРекурсивно(ЭлементСписка.Значение), ЭлементСписка.Значение);
Результат.Добавить(Значение, ЭлементСписка.Представление, ЭлементСписка.Пометка, ЭлементСписка.Картинка);
КонецЦикла;

View File

@ -633,7 +633,7 @@
КонецЦикла;
Если ТестыКЗапуску.Количество() Тогда
ЗапускаемыйНабор = ЮТКоллекции.СкопироватьСтруктуру(Набор);
ЗапускаемыйНабор = ЮТКоллекции.СкопироватьСтруктуру(Набор, Ложь);
ЗапускаемыйНабор.Тесты = ТестыКЗапуску;
НаборыКЗапуску.Добавить(ЗапускаемыйНабор);
КонецЕсли;
@ -642,7 +642,7 @@
Если НаборыКЗапуску.Количество() Тогда
ЗапускаемыйМодуль = ЮТКоллекции.СкопироватьСтруктуру(Модуль);
ЗапускаемыйМодуль = ЮТКоллекции.СкопироватьСтруктуру(Модуль, Ложь);
ЗапускаемыйМодуль.НаборыТестов = НаборыКЗапуску;
МодулиКЗапуску.Добавить(ЗапускаемыйМодуль);
@ -674,7 +674,7 @@
КонецЦикла;
Если ТестыКЗапуску.Количество() Тогда
ЗапускаемыйНабор = ЮТКоллекции.СкопироватьСтруктуру(Набор);
ЗапускаемыйНабор = ЮТКоллекции.СкопироватьСтруктуру(Набор, Ложь);
ЗапускаемыйНабор.Тесты = ТестыКЗапуску;
НаборыКЗапуску.Добавить(ЗапускаемыйНабор);
КонецЕсли;
@ -683,7 +683,7 @@
Если НаборыКЗапуску.Количество() Тогда
ЗапускаемыйМодуль = ЮТКоллекции.СкопироватьСтруктуру(Модуль);
ЗапускаемыйМодуль = ЮТКоллекции.СкопироватьСтруктуру(Модуль, Ложь);
ЗапускаемыйМодуль.НаборыТестов = НаборыКЗапуску;
МодулиКЗапуску.Добавить(ЗапускаемыйМодуль);