mirror of
https://github.com/bia-technologies/precommit4onec.git
synced 2024-11-21 17:36:46 +02:00
#ONECICD-249
Доработка и рефакторинг.
This commit is contained in:
parent
438d76a122
commit
9d8a04c4ab
49
README.md
49
README.md
@ -27,34 +27,31 @@
|
||||
Перед использованием необходима установка precommit-hook'а в репозиторий:
|
||||
|
||||
- для выполнения установки в конкретный репозиторий необходимо выполнить команду `precommit4onec install repo_name`
|
||||
- для выполнения установки во все репозитории каталога необходимо выполнить команду`precommit4onec install folder_reps -r`
|
||||
- для выполнения установки во все репозитории каталога необходимо выполнить команду `precommit4onec install folder_reps -r`
|
||||
- если каталог исходных файлов в репозитории отличается от стандартного "src" (например, когда исходные файлы в формате EDT), необходимо явно указать его с помощью дополнительного параметра `-source-dir "configuration"`
|
||||
|
||||
После этого, при каждом коммите будет выполняться обработка файлов.
|
||||
|
||||
В комплекте присутствуют следующие сценарии обработки файлов:
|
||||
|
||||
- `РазборОтчетОбработокРасширений` - при выполнении данного сценария, файлы внешних отчетов, обработок и расширений средствами платформы будут разложены на исходные файлы и помещены в каталог исходных файлов репозитория в подкаталоги, соответствующие расширениям. Например внешний отчет `ВнешнийОтчет1.erf` будет разложен в каталог `src\erf\ВнешнийОтчет1`
|
||||
- `РазборОбычныхФормНаИсходники` - при выполнении данного сценария, файлы обычных форм (`Form.bin`) раскладываются на исходные файлы с помощью инструмента `v8unpack`
|
||||
- `КорректировкаXMLФорм` - при выполнении данного сценария, файлы описаний форм (`Form.xml`) проверяются на наличие задублировавшихся индексов элементов, которые образуются при объединениях. Если дубли есть, то они исправляются
|
||||
- `ДобавлениеПробеловПередКлючевымиСловами` - при выполнении данного сценария, в файлах модулей перед ключевыми словами добавляются отсутствующие пробелы. На данный момент обрабатывается только ключевое слово `Экспорт`.
|
||||
- `УдалениеЛишнихКонцевыхПробелов` - при выполнении данного сценария, в файлах модулей удаляются лишние пробелы и табы в конце не пустой строки.
|
||||
- `СортировкаДереваМетаданных` - при выполнении данного сценария, выполняется упорядочивание объектов метаданных в дереве за исключением подсистем, они остаются в том порядке, который задал разработчик.
|
||||
- `СинхронизацияОбъектовМетаданныхИФайлов` - анализирует наличие файлов и объектов конфигурации.
|
||||
- `УдалениеДублейМетаданных` - удаляет задублированные объекты метаданных (результат кривого мерджа)
|
||||
- `ЗапретИспользованияПерейти` - проверяет модуль на использование методов `Перейти`
|
||||
- `УдалениеЛишнихПустыхСтрок` - выполняет очистку модуля от лишних пустых строк (лишними считаются 2 и более идущих подряд пустых строках)
|
||||
- `ПроверкаКорректностиОбластей` - выполняет проверку на корректность скобок областей: `на парность` и `перед окончание области должно быть ее определение`
|
||||
- `ПроверкаДублейПроцедурИФункций` - выполняет поиск одинаковых названий процедур и функций в модуле.
|
||||
- `ОтключениеПолнотекстовогоПоиска` - По умолчанию отключает полнотекстовый поиск в файлах описания метаданных. Имеет настройку для исключения файлов из обработки. Для исключения необходимо указать относительный путь в репозитории до файла описания метаданного. Можно выключать из обработки отдельные реквизиты метаданного, для этого надо задать массив реквизитов в конфигурационном файле.
|
||||
- `ИсправлениеНеКаноническогоНаписания` - Проверяет модули на каноничность написания ключевых слов и исправляет найденное
|
||||
- `ОбработкаЮнитТестов` - Обрабатывает каталог расширения с unit тестами, обновляя метод-загручик (по умолчанию отключен)
|
||||
- `ПроверкаНецензурныхСлов` - Проверяет модули на наличие "плохих" слов, которые перечислены в файле. Пример файла [НецензурныеСлова.txt](/НецензурныеСлова.txt). В v8config.json в секции `НастройкиСценариев` добавить секцию:
|
||||
```JSON
|
||||
"ПроверкаНецензурныхСлов": {
|
||||
"ФайлСНецензурнымиСловами": "НецензурныеСлова.txt"
|
||||
}
|
||||
```
|
||||
- `ПроверкаКорректностиДирективКомпиляции` - Проверяет модули на корректность написания директив компилятора.
|
||||
- `ДобавлениеПробеловПередКлючевымиСловами` - добавляет отсутствующие пробелы перед ключевыми словами в файлах модулей. На данный момент обрабатывается только ключевое слово `Экспорт`.
|
||||
- `ДобавлениеТестовВРасширение` - добавляет отсутствующие сценарии в расширение с unit-тестами для всех экспортных методов (обрабатываются общие модули, модули менеджеров, модули объектов, модули наборов записей). Поддерживаются только исходные файлы в формате EDT.
|
||||
- `ЗапретИспользованияПерейти` - проверяет модуль на использование методов `Перейти`.
|
||||
- `ИсправлениеНеКаноническогоНаписания` - исправляет неканоничное написание ключевых слов в модулях.
|
||||
- `КорректировкаXMLФорм` - исправляет дубли индексов элементов в файлах описаний форм (могут образоваться при объединениях). Поддерживаются как файлы в формате выгрузки конфигуратора (`Form.xml`), так и в формате EDT (`Form.form`).
|
||||
- `ОбработкаЮнитТестов` - обновляет метод-загрузчик сценариев в общих модулях расширения с unit-тестами (по умолчанию отключен).
|
||||
- `ОтключениеПолнотекстовогоПоиска` - отключает полнотекстовый поиск в файлах описаний метаданных. Имеет настройку для исключения файлов из обработки. Для исключения необходимо указать относительный путь в репозитории до файла описания объекта метаданных. Можно выключать из обработки отдельные реквизиты, для этого надо задать массив реквизитов в конфигурационном файле.
|
||||
- `ПроверкаДублейПроцедурИФункций` - проверяет уникальность названий процедур и функций в модулях.
|
||||
- `ПроверкаКорректностиДирективКомпиляции` - проверяет корректность написания директив компиляции в модулях.
|
||||
- `ПроверкаКорректностиОбластей` - проверяет корректность "скобок" областей в модулях (парность и последовательность).
|
||||
- `ПроверкаНецензурныхСлов` - проверяет наличие нецензурных слов в модулях. Файл-словарь указывается в настройках. Пример файла [НецензурныеСлова.txt](/НецензурныеСлова.txt).
|
||||
- `РазборОбычныхФормНаИсходники` - раскладывает файлы обычных форм (`Form.bin`) на исходные файлы с помощью инструмента `v8unpack`.
|
||||
- `РазборОтчетОбработокРасширений` - раскладывает средствами платформы файлы внешних отчетов, обработок и расширений на исходные файлы и помещает в каталог исходных файлов репозитория в подкаталоги, соответствующие расширениям этих файлов. Например, внешний отчет `ВнешнийОтчет1.erf` будет разложен в каталог `src\erf\ВнешнийОтчет1`.
|
||||
- `СинхронизацияОбъектовМетаданныхИФайлов` - анализирует наличие файлов и объектов конфигурации. Поддерживается только файл описания конфигурации в формате выгрузки конфигуратора (`Configuration.xml`).
|
||||
- `СортировкаДереваМетаданных` - упорядочивает объекты метаданных верхнего уровня по алфавиту в файле описания конфигурации (кроме подсистем). Поддерживается как файл в формате выгрузки конфигуратора (`Configuration.xml`), так и в формате EDT (`Configuration.mdo`).
|
||||
- `УдалениеДублейМетаданных` - удаляет дубли объектов метаданных в файле описания конфигурации (могут образоваться при объединениях). Поддерживается как файл в формате выгрузки конфигуратора (`Configuration.xml`), так и в формате EDT (`Configuration.mdo`)..
|
||||
- `УдалениеЛишнихКонцевыхПробелов` - удаляет лишние пробелы и табы в конце не пустых строк в файлах модулей.
|
||||
- `УдалениеЛишнихПустыхСтрок` - удаляет лишние пустые строки в модулях (лишними считаются 2 и более идущих подряд пустых строк).
|
||||
|
||||
## Изменение настроек
|
||||
|
||||
@ -69,7 +66,7 @@ precommit4onec может читать настройки своей работ
|
||||
Предоставляется возможность в репозитории иметь свои, отличные от глобальных, настройки. Для этого необходимо вместо флага `-global` в указанных выше командах передавать параметр `-rep-path` с указанием пути к каталогу репозитория.
|
||||
|
||||
Также можно настроить различное поведение для различных каталогов репозитория, для работы с подкаталогами (проектами) используется ключ `-child-path`.
|
||||
Настройки проектов полностью переопределяют базовые настройки. Например если в основной настройки указаны `ОтключенныеСценарии`,
|
||||
Настройки проектов полностью переопределяют базовые настройки. Например если в основной настройке указаны `ОтключенныеСценарии`,
|
||||
а для проекта `configuration\` они не заполнены, то для каталога `configuration` будут выполнены все сценарии.
|
||||
|
||||
Конфигурирование дает возможности:
|
||||
@ -85,7 +82,8 @@ precommit4onec может читать настройки своей работ
|
||||
{
|
||||
"GLOBAL": { // необязательная секция
|
||||
"ВерсияПлатформы": "8.3.10.2309", // используемая версия платформы например для разбора на исходники
|
||||
"version": "2.0" // версия конфигурационного файла (необязательно)
|
||||
"version": "2.0", // версия конфигурационного файла (необязательно)
|
||||
"ФорматEDT": true, // признак использования исходных файлов в формате EDT
|
||||
},
|
||||
"Precommt4onecСценарии": {
|
||||
"ИспользоватьСценарииРепозитория": false, // Признак, выполнения проверок из репозитория
|
||||
@ -105,7 +103,6 @@ precommit4onec может читать настройки своей работ
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
## Расширение функциональности
|
||||
|
||||
Для создания нового сценария обработки файлов необходимо воспользоваться шаблоном, находящимся в каталоге `СценарииОбработки` скрипта.
|
||||
|
@ -39,6 +39,7 @@ y
|
||||
y
|
||||
y
|
||||
y
|
||||
y
|
||||
local
|
||||
n
|
||||
"""
|
||||
@ -51,6 +52,7 @@ n
|
||||
"КаталогЛокальныхСценариев": "local",
|
||||
"ГлобальныеСценарии": [
|
||||
"ДобавлениеПробеловПередКлючевымиСловами.os",
|
||||
"ДобавлениеТестовВРасширение.os",
|
||||
"ЗапретИспользованияПерейти.os",
|
||||
"ИсправлениеНеКаноническогоНаписания.os",
|
||||
"КорректировкаXMLФорм.os",
|
||||
|
@ -54,7 +54,7 @@
|
||||
Тогда Вывод команды "oscript" содержит "обнаружены неуникальные имена методов"
|
||||
|
||||
Сценарий: Прекоммит вывел ошибку о нецензурных словах
|
||||
Когда Я копирую файл "tests\fixtures\ПроверкаНезензурныхСлов.bsl" в каталог репозитория "РабочийКаталог"
|
||||
Когда Я копирую файл "tests\fixtures\ПроверкаНецензурныхСлов.bsl" в каталог репозитория "РабочийКаталог"
|
||||
И Я копирую файл "v8config.json" из каталога "tests\fixtures\ХранениеРазныхНастроек" проекта в рабочий каталог
|
||||
И Я копирую файл "НецензурныеСлова.txt" из каталога "." проекта в рабочий каталог
|
||||
И я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os exec-rules <РабочийКаталог> -source-dir ."
|
||||
@ -95,4 +95,4 @@
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
"""
|
||||
"""
|
@ -40,7 +40,7 @@
|
||||
Установленные настройки: Базовые настройки
|
||||
ИспользоватьСценарииРепозитория = Нет
|
||||
КаталогЛокальныхСценариев =
|
||||
ГлобальныеСценарии = ДобавлениеПробеловПередКлючевымиСловами.os,ЗапретИспользованияПерейти.os,ИсправлениеНеКаноническогоНаписания.os,КорректировкаXMLФорм.os,ОбработкаЮнитТестов.os,ОтключениеПолнотекстовогоПоиска.os,ПроверкаДублейПроцедурИФункций.os,ПроверкаКорректностиДирективКомпиляции.os,ПроверкаКорректностиОбластей.os,ПроверкаНецензурныхСлов.os,РазборОбычныхФормНаИсходники.os,РазборОтчетовОбработокРасширений.os,СинхронизацияОбъектовМетаданныхИФайлов.os,СортировкаДереваМетаданных.os,УдалениеДублейМетаданных.os,УдалениеЛишнихКонцевыхПробелов.os,УдалениеЛишнихПустыхСтрок.os
|
||||
ГлобальныеСценарии = ДобавлениеПробеловПередКлючевымиСловами.os,ДобавлениеТестовВРасширение.os,ЗапретИспользованияПерейти.os,ИсправлениеНеКаноническогоНаписания.os,КорректировкаXMLФорм.os,ОбработкаЮнитТестов.os,ОтключениеПолнотекстовогоПоиска.os,ПроверкаДублейПроцедурИФункций.os,ПроверкаКорректностиДирективКомпиляции.os,ПроверкаКорректностиОбластей.os,ПроверкаНецензурныхСлов.os,РазборОбычныхФормНаИсходники.os,РазборОтчетовОбработокРасширений.os,СинхронизацияОбъектовМетаданныхИФайлов.os,СортировкаДереваМетаданных.os,УдалениеДублейМетаданных.os,УдалениеЛишнихКонцевыхПробелов.os,УдалениеЛишнихПустыхСтрок.os
|
||||
ОтключенныеСценарии =
|
||||
НастройкиСценариев = Соответствие
|
||||
ОтключениеПолнотекстовогоПоиска = Соответствие
|
||||
|
@ -16,4 +16,5 @@
|
||||
.ВключитьФайл("v8config.json")
|
||||
.ВключитьФайл("LICENSE")
|
||||
.ВключитьФайл("README.md")
|
||||
.ВключитьФайл("НецензурныеСлова.txt")
|
||||
.ИсполняемыйФайл("src/main.os", ИмяПродукта);
|
||||
|
@ -40,6 +40,7 @@
|
||||
|
||||
КаталогРепозитория = ПараметрыКоманды["КаталогРепозитория"];
|
||||
ФайлКаталогРепозитория = Новый Файл(КаталогРепозитория);
|
||||
КаталогРепозитория = ФайлКаталогРепозитория.ПолноеИмя;
|
||||
Если НЕ ФайлКаталогРепозитория.Существует() ИЛИ ФайлКаталогРепозитория.ЭтоФайл() Тогда
|
||||
|
||||
Лог.Ошибка("Каталог репозитория '%1' не существует или это файл", КаталогРепозитория);
|
||||
@ -47,65 +48,55 @@
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
АдресПоискаКонфигурационногоФайла = КаталогРепозитория;
|
||||
|
||||
Если ЗначениеЗаполнено(ПараметрыКоманды["-cfg-file"]) Тогда
|
||||
|
||||
АдресПоискаКонфигурационногоФайла = ПараметрыКоманды["-cfg-file"];
|
||||
|
||||
АдресПоискаКонфигурационногоФайла = ПараметрыКоманды["-cfg-file"];
|
||||
Если Не ЗначениеЗаполнено(АдресПоискаКонфигурационногоФайла) Тогда
|
||||
АдресПоискаКонфигурационногоФайла = КаталогРепозитория;
|
||||
КонецЕсли;
|
||||
|
||||
КаталогИсходныхФайлов = ПараметрыКоманды["-source-dir"];
|
||||
Если Не ЗначениеЗаполнено(КаталогИсходныхФайлов) Тогда
|
||||
|
||||
КаталогиИсходныхФайлов = "src";
|
||||
|
||||
Иначе
|
||||
|
||||
КаталогиИсходныхФайлов = СтрЗаменить(ПараметрыКоманды["-source-dir"], " ", "");
|
||||
|
||||
ПараметрКаталогиИсходныхФайлов = ПараметрыКоманды["-source-dir"];
|
||||
Если Не ЗначениеЗаполнено(ПараметрКаталогиИсходныхФайлов) Тогда
|
||||
ПараметрКаталогиИсходныхФайлов = "src";
|
||||
КонецЕсли;
|
||||
МассивКаталоговИсходныхФайлов = СтрРазделить(КаталогиИсходныхФайлов, ",", Ложь);
|
||||
КаталогиИсходныхФайлов = СтрРазделить(ПараметрКаталогиИсходныхФайлов, ",", Ложь);
|
||||
|
||||
ОбрабатываемыеФайлы = Новый Массив();
|
||||
|
||||
Для Каждого КаталогИсходныхФайлов Из МассивКаталоговИсходныхФайлов Цикл
|
||||
|
||||
ТекущийКаталогИсходныхФайлов = ОбъединитьПути(КаталогРепозитория, КаталогИсходныхФайлов);
|
||||
КаталогиИсходныхПоФайлам = Новый Соответствие();
|
||||
Для Каждого КаталогИсходныхФайлов Из КаталогиИсходныхФайлов Цикл
|
||||
|
||||
ТекущийКаталогИсходныхФайлов = ОбъединитьПути(КаталогРепозитория, СокрЛП(КаталогИсходныхФайлов));
|
||||
ФайлТекущийКаталогИсходныхФайлов = Новый Файл(ТекущийКаталогИсходныхФайлов);
|
||||
ТекущийКаталогИсходныхФайлов = ФайлТекущийКаталогИсходныхФайлов.ПолноеИмя;
|
||||
Если НЕ ФайлТекущийКаталогИсходныхФайлов.Существует() Тогда
|
||||
|
||||
Если Не ФайлТекущийКаталогИсходныхФайлов.Существует() Тогда
|
||||
|
||||
Лог.Ошибка("Каталога <%1> не существует", ТекущийКаталогИсходныхФайлов);
|
||||
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КаталогРепозитория = ФайлКаталогРепозитория.ПолноеИмя;
|
||||
|
||||
ОбрабатываемыеФайлыКаталога = НайтиФайлы(ТекущийКаталогИсходныхФайлов, "*", Истина);
|
||||
|
||||
ОбрабатываемыеФайлыКаталога = НайтиФайлы(ТекущийКаталогИсходныхФайлов, ПолучитьМаскуВсеФайлы(), Истина);
|
||||
Для Каждого ОбрабатываемыйФайлКаталога Из ОбрабатываемыеФайлыКаталога Цикл
|
||||
|
||||
ОбрабатываемыеФайлы.Добавить(ОбрабатываемыйФайлКаталога);
|
||||
|
||||
КаталогиИсходныхПоФайлам.Вставить(ОбрабатываемыйФайлКаталога.ПолноеИмя, ТекущийКаталогИсходныхФайлов);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
ИменаЗагружаемыхСценариев = Неопределено;
|
||||
Если ЗначениеЗаполнено(ПараметрыКоманды["-rules"]) Тогда
|
||||
ПараметрИменаСценариев = СтрЗаменить(ПараметрыКоманды["-rules"], " ", "");
|
||||
ИменаЗагружаемыхСценариев = СтрРазделить(ПараметрИменаСценариев, ",", Ложь);
|
||||
КонецЕсли;
|
||||
|
||||
Ит = 0;
|
||||
КонецЦикла;
|
||||
|
||||
ИменаЗагружаемыхСценариев = Неопределено;
|
||||
ПараметрИменаЗагружаемыхСценариев = ПараметрыКоманды["-rules"];
|
||||
Если ЗначениеЗаполнено(ПараметрИменаЗагружаемыхСценариев) Тогда
|
||||
ПараметрИменаЗагружаемыхСценариев = СтрЗаменить(ПараметрИменаЗагружаемыхСценариев, " ", "");
|
||||
ИменаЗагружаемыхСценариев = СтрРазделить(ПараметрИменаЗагружаемыхСценариев, ",", Ложь);
|
||||
КонецЕсли;
|
||||
|
||||
УправлениеНастройками = МенеджерНастроек.НастройкиРепозитория(АдресПоискаКонфигурационногоФайла);
|
||||
НаборНастроек = СценарииОбработки.ПолучитьСценарииСПараметрамиВыполнения(КаталогРепозитория, ИменаЗагружаемыхСценариев);
|
||||
КритичныеОшибки = Новый Массив;
|
||||
|
||||
ПараметрыОбработки = СценарииОбработки.ПолучитьСтандартныеПараметрыОбработки();
|
||||
|
||||
ПараметрыОбработки.Лог = Лог;
|
||||
|
||||
Ит = 0;
|
||||
Пока Ит < ОбрабатываемыеФайлы.Количество() Цикл
|
||||
|
||||
АнализируемыйФайл = ОбрабатываемыеФайлы[Ит];
|
||||
@ -132,12 +123,13 @@
|
||||
|
||||
ПараметрыОбработки.Настройки = НастройкаОбработки.НастройкиСценариев.Получить("НастройкиСценариев");
|
||||
ПараметрыОбработки.КаталогРепозитория = КаталогРепозитория;
|
||||
ПараметрыОбработки.ТекущийКаталогИсходныхФайлов = КаталогиИсходныхПоФайлам.Получить(АнализируемыйФайл.ПолноеИмя);
|
||||
|
||||
Для Каждого СценарийОбработки Из НастройкаОбработки.СценарииОбработки Цикл
|
||||
|
||||
Попытка
|
||||
ФайлОбработан = СценарийОбработки.ОбработатьФайл(АнализируемыйФайл,
|
||||
ТекущийКаталогИсходныхФайлов,
|
||||
ПараметрыОбработки.ТекущийКаталогИсходныхФайлов,
|
||||
ПараметрыОбработки);
|
||||
|
||||
Если НЕ ФайлОбработан Тогда
|
||||
@ -146,7 +138,9 @@
|
||||
|
||||
Для Каждого ФайлДляДопОбработки Из ПараметрыОбработки.ФайлыДляПостОбработки Цикл
|
||||
|
||||
ОбрабатываемыеФайлы.Добавить(ФайловыеОперации.НовыйФайл(ФайлДляДопОбработки));
|
||||
НовыйОбрабатываемыйФайл = ФайловыеОперации.НовыйФайл(ФайлДляДопОбработки);
|
||||
ОбрабатываемыеФайлы.Добавить(НовыйОбрабатываемыйФайл);
|
||||
КаталогиИсходныхПоФайлам.Вставить(НовыйОбрабатываемыйФайл.ПолноеИмя, ПараметрыОбработки.ТекущийКаталогИсходныхФайлов);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
@ -183,4 +177,3 @@
|
||||
Возврат Приложение.РезультатыКоманд().Успех;
|
||||
|
||||
КонецФункции // ВыполнитьКоманду
|
||||
|
||||
|
@ -23,7 +23,7 @@
|
||||
КонецПроцедуры // НастроитьКоманду
|
||||
|
||||
// Выполняет логику команды
|
||||
//
|
||||
//
|
||||
// Параметры:
|
||||
// ПараметрыКоманды - Соответствие - Соответствие ключей командной строки и их значений
|
||||
// Приложение - Модуль - Модуль менеджера приложения
|
||||
@ -38,9 +38,9 @@
|
||||
Если НЕ ПроверитьПараметрыКоманды(КаталогРепозитория, Лог) Тогда
|
||||
|
||||
Возврат Приложение.РезультатыКоманд().НеверныеПараметры;
|
||||
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
Если Не ЗначениеЗаполнено(КаталогИсходныхФайлов) Тогда
|
||||
|
||||
КаталогИсходныхФайлов = "src";
|
||||
@ -56,28 +56,26 @@
|
||||
СоздатьКаталог(ТекущийКаталогИсходныхФайлов);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
УправлениеНастройками = МенеджерНастроек.НастройкиРепозитория(КаталогРепозитория);
|
||||
|
||||
НаборНастроек = СценарииОбработки.ПолучитьСценарииСПараметрамиВыполнения(КаталогРепозитория);
|
||||
|
||||
ЖурналИзменений = ПолучитьЖурналИзменений();
|
||||
|
||||
ПараметрыОбработки = Новый Структура("ФайлыДляПостОбработки, ИзмененныеКаталоги, КаталогРепозитория, ТекущийКаталогИсходныхФайлов, Настройки",
|
||||
Новый Массив, Новый Массив, КаталогРепозитория, ТекущийКаталогИсходныхФайлов);
|
||||
ПараметрыОбработки = СценарииОбработки.ПолучитьСтандартныеПараметрыОбработки();
|
||||
ПараметрыОбработки.Лог = Лог;
|
||||
ПараметрыОбработки.КаталогРепозитория = КаталогРепозитория;
|
||||
ПараметрыОбработки.ТекущийКаталогИсходныхФайлов = ТекущийКаталогИсходныхФайлов;
|
||||
|
||||
ПараметрыОбработки.Вставить("Лог", Лог);
|
||||
|
||||
ФайлыКОбработке = Новый Массив();
|
||||
|
||||
|
||||
Для каждого Изменение Из ЖурналИзменений Цикл
|
||||
|
||||
|
||||
ФайлыКОбработке.Добавить(Новый Файл(ОбъединитьПути(КаталогРепозитория, Изменение.ИмяФайла)));
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
|
||||
ВыполнитьОбработкуФайлов(ФайлыКОбработке, НаборНастроек, ПараметрыОбработки);
|
||||
|
||||
|
||||
// измененные каталоги необходимо добавить в индекс
|
||||
Лог.Отладка("Добавление измененных каталогов в индекс git");
|
||||
Для Каждого Каталог Из ПараметрыОбработки.ИзмененныеКаталоги Цикл
|
||||
@ -94,7 +92,7 @@
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
Процедура ВыполнитьОбработкуФайлов(Файлы, НаборНастроек, ПараметрыОбработки)
|
||||
|
||||
|
||||
КаталогРепозитория = ПараметрыОбработки.КаталогРепозитория;
|
||||
Ит = 0;
|
||||
Пока Ит < Файлы.Количество() Цикл
|
||||
@ -103,12 +101,12 @@
|
||||
Лог.Отладка("Анализируется файл <%1>", АнализируемыйФайл.Имя);
|
||||
|
||||
ИмяФайла = ФайловыеОперации.ПолучитьНормализованныйОтносительныйПуть(КаталогРепозитория,
|
||||
СтрЗаменить(АнализируемыйФайл.ПолноеИмя, КаталогРепозитория, ""));
|
||||
|
||||
СтрЗаменить(АнализируемыйФайл.ПолноеИмя, КаталогРепозитория, ""));
|
||||
|
||||
ИмяПроекта = МенеджерНастроек.ИмяПроектаДляФайла(ИмяФайла);
|
||||
|
||||
|
||||
НастройкаОбработки = НаборНастроек[ИмяПроекта];
|
||||
|
||||
|
||||
Если НЕ ЗначениеЗаполнено(НастройкаОбработки) Тогда
|
||||
|
||||
ВызватьИсключение СтрШаблон("Не удалось получить настройки для %1", ИмяФайла);
|
||||
@ -131,7 +129,7 @@
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого ФайлДляДопОбработки Из ПараметрыОбработки.ФайлыДляПостОбработки Цикл
|
||||
|
||||
|
||||
Файлы.Добавить(ФайловыеОперации.НовыйФайл(ФайлДляДопОбработки));
|
||||
|
||||
КонецЦикла;
|
||||
@ -143,7 +141,7 @@
|
||||
Ит = Ит + 1;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
|
||||
КонецПроцедуры
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@ -169,7 +167,7 @@
|
||||
Возврат Ложь;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
Возврат Истина;
|
||||
|
||||
КонецФункции
|
||||
@ -201,4 +199,4 @@
|
||||
|
||||
Возврат ЖурналИзменений;
|
||||
|
||||
КонецФункции
|
||||
КонецФункции
|
||||
|
@ -17,17 +17,17 @@
|
||||
ВызватьИсключение "Настройки не загружены";
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
Если ИспользуютсяЛокальныеНастройки() Тогда
|
||||
|
||||
|
||||
Возврат ЛокальныеНастройки;
|
||||
|
||||
|
||||
Иначе
|
||||
|
||||
|
||||
Возврат ГлобальныеНастройки;
|
||||
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция НастройкиРепозитория(ПутьКаталогаРепозитория, ВернутьГлобальныеЕслиНетЛокальных = Истина) Экспорт
|
||||
@ -45,44 +45,44 @@
|
||||
ЛокальныеНастройки = Новый НастройкиРепозитория(КаталогРепозитория);
|
||||
|
||||
ИспользуютсяЛокальныеНастройки = ЕстьНастройкиPrecommt4onec(ЛокальныеНастройки) ИЛИ НЕ ВернутьГлобальныеЕслиНетЛокальных;
|
||||
|
||||
|
||||
Если ИспользуютсяЛокальныеНастройки Тогда
|
||||
|
||||
ВозвращаемаяНастройка = ЛокальныеНастройки;
|
||||
Лог.Информация("Используем локальные настройки");
|
||||
|
||||
|
||||
Иначе
|
||||
|
||||
ВозвращаемаяНастройка = ГлобальныеНастройки;
|
||||
|
||||
Лог.Информация("Используем глобальные настройки");
|
||||
|
||||
|
||||
Если НЕ ЕстьНастройкиPrecommt4onec(ГлобальныеНастройки) Тогда
|
||||
|
||||
Лог.Предупреждение("Файл глобальных настроек '%1' не содержит настройки прекоммита", МенеджерПриложения.ПутьКРодительскомуКаталогу());
|
||||
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
НастройкиИнициализированы = Истина;
|
||||
|
||||
|
||||
ПроверитьНастройкуПроектов();
|
||||
|
||||
|
||||
Возврат ВозвращаемаяНастройка;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ГлобальныеНастройки() Экспорт
|
||||
|
||||
Если ГлобальныеНастройки = Неопределено Тогда
|
||||
|
||||
Если ГлобальныеНастройки = Неопределено Тогда
|
||||
|
||||
Если НЕ ЗначениеЗаполнено(КаталогГлобальныхНастроек) Тогда
|
||||
ГлобальныеНастройки = Новый НастройкиРепозитория(МенеджерПриложения.ПутьКРодительскомуКаталогу());
|
||||
Иначе
|
||||
ГлобальныеНастройки = Новый НастройкиРепозитория(КаталогГлобальныхНастроек);
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
НастройкиИнициализированы = Истина;
|
||||
@ -96,11 +96,11 @@
|
||||
Значение = ЗначениеНастроекПоКлючу(Настройки(), КлючНастройки(Подпроект, КлючНастройки));
|
||||
|
||||
Возврат ?(Значение = Неопределено, ЗначениеПоУмолчанию, Значение);
|
||||
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ИменаЗагружаемыхСценариев(Подпроект = "") Экспорт
|
||||
|
||||
|
||||
ИменаИсключаемыхСценариев = ЗначениеНастройки("ОтключенныеСценарии", Подпроект);
|
||||
|
||||
ГлобальныеСценарии = ЗначениеНастройки("ГлобальныеСценарии", Подпроект);
|
||||
@ -108,9 +108,9 @@
|
||||
Если ГлобальныеСценарии = Неопределено Тогда
|
||||
|
||||
ГлобальныеСценарии = ПолучитьЗначениеНастройки(ГлобальныеНастройки(), "ГлобальныеСценарии");
|
||||
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
ИменаЗагружаемыхСценариев = Новый Массив;
|
||||
|
||||
Если ИменаИсключаемыхСценариев = Неопределено Тогда
|
||||
@ -124,17 +124,17 @@
|
||||
Если ИменаИсключаемыхСценариев.Найти(ИмяСценария) = Неопределено Тогда
|
||||
|
||||
ИменаЗагружаемыхСценариев.Добавить(ИмяСценария);
|
||||
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
|
||||
Возврат ИменаЗагружаемыхСценариев;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьСписокИсполняемыхСценариев(Знач ГлобальныеСценарии, Знач ОтключенныеСценарии) Экспорт
|
||||
|
||||
|
||||
ИменаЗагружаемыхСценариев = Новый Массив;
|
||||
|
||||
Если ОтключенныеСценарии = Неопределено Тогда
|
||||
@ -148,27 +148,27 @@
|
||||
Если ОтключенныеСценарии.Найти(ИмяСценария) = Неопределено Тогда
|
||||
|
||||
ИменаЗагружаемыхСценариев.Добавить(ИмяСценария);
|
||||
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
|
||||
Возврат ИменаЗагружаемыхСценариев;
|
||||
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ИспользуютсяЛокальныеНастройки() Экспорт
|
||||
|
||||
Возврат ИспользуютсяЛокальныеНастройки = Истина;
|
||||
|
||||
|
||||
КонецФункции
|
||||
|
||||
#Область Проекты
|
||||
|
||||
Функция ПроектыКонфигурации() Экспорт
|
||||
|
||||
|
||||
Проекты = Новый Массив;
|
||||
|
||||
|
||||
БлокПроекты = ЗначениеНастройки(КлючПроекты());
|
||||
|
||||
Если ЗначениеЗаполнено(БлокПроекты) Тогда
|
||||
@ -176,9 +176,9 @@
|
||||
Для Каждого Элемент Из БлокПроекты Цикл
|
||||
|
||||
Проекты.Добавить(Элемент.Ключ);
|
||||
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Проекты;
|
||||
@ -188,27 +188,27 @@
|
||||
Функция НастройкиПроекта(Подпроект = "") Экспорт
|
||||
|
||||
Значение = ПолучитьНастройкиПроекта(Настройки(), Подпроект);
|
||||
|
||||
|
||||
Возврат Значение;
|
||||
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция НастройкаДляФайла(Знач ОтносительноеИмяФайла) Экспорт
|
||||
|
||||
Возврат НастройкиПроекта(ИмяПроектаДляФайла(ОтносительноеИмяФайла));
|
||||
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ИмяПроектаДляФайла(Знач ОтносительноеИмяФайла) Экспорт
|
||||
|
||||
|
||||
Если СтрНачинаетсяС(ОтносительноеИмяФайла, "/") ИЛИ СтрНачинаетсяС(ОтносительноеИмяФайла, "\") Тогда
|
||||
|
||||
|
||||
ОтносительноеИмяФайла = Сред(ОтносительноеИмяФайла, 2);
|
||||
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
ОтносительноеИмяФайла = НРег(ФайловыеОперации.ПолучитьНормализованныйОтносительныйПуть(КаталогРепозитория, ОтносительноеИмяФайла));
|
||||
|
||||
|
||||
Для Каждого ИмяПроекта Из ПроектыКонфигурации() Цикл
|
||||
|
||||
НормализованноеИмяПроекта = НРег(ИмяПроекта);
|
||||
@ -216,7 +216,7 @@
|
||||
Если СтрНачинаетсяС(ОтносительноеИмяФайла, НормализованноеИмяПроекта) Тогда
|
||||
|
||||
Возврат ИмяПроекта;
|
||||
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
@ -226,56 +226,56 @@
|
||||
КонецФункции
|
||||
|
||||
Процедура УдалитьПроекты() Экспорт
|
||||
|
||||
ЗначениеНастройки("").Удалить(КлючПроекты()); // Удаляем ветку "Проекты" из корня настроек прекоммит
|
||||
|
||||
|
||||
ЗначениеНастройки("").Удалить(КлючПроекты()); // Удаляем ветку "Проекты" из корня настроек прекоммит
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура УдалитьПроект(Подпроект) Экспорт
|
||||
|
||||
|
||||
ИмяПроекта = ИмяПроектаДляФайла(Подпроект);
|
||||
|
||||
|
||||
Если НЕ ЗначениеЗаполнено(ИмяПроекта) ИЛИ СтрДлина(ИмяПроекта) <> СтрДлина(Подпроект) Тогда
|
||||
МенеджерПриложения.ПолучитьЛог().Предупреждение("Не найден проект %1", Подпроект);
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
ЗначениеНастройки(КлючПроекты()).Удалить(ИмяПроекта);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция НормализованноеИмяПроекта(ИмяПроекта) Экспорт
|
||||
|
||||
|
||||
Если НЕ ЗначениеЗаполнено(ИмяПроекта) Тогда
|
||||
|
||||
|
||||
Возврат ИмяПроекта;
|
||||
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
НормализованноеИмяПроекта = ФайловыеОперации.ПолучитьНормализованныйОтносительныйПуть(КаталогРепозитория, ИмяПроекта);
|
||||
|
||||
|
||||
Возврат НормализованноеИмяПроекта;
|
||||
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПроверитьНастройкуПроектов() Экспорт
|
||||
|
||||
|
||||
Успешно = Истина;
|
||||
|
||||
|
||||
Лог = МенеджерПриложения.ПолучитьЛог();
|
||||
Для Каждого ИмяПроекта Из ПроектыКонфигурации() Цикл
|
||||
|
||||
|
||||
Если НормализованноеИмяПроекта(ИмяПроекта) <> ИмяПроекта Тогда
|
||||
|
||||
|
||||
Лог.Предупреждение("Имя проекта '%1' указано не корректно (должно быть %2), возможно приложение будет работать не корректно", ИмяПроекта, НормализованноеИмяПроекта(ИмяПроекта));
|
||||
Успешно = Ложь;
|
||||
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
|
||||
Возврат Успешно;
|
||||
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
@ -289,19 +289,19 @@
|
||||
Процедура ЗаписатьНастройки() Экспорт
|
||||
|
||||
Настройки().ЗаписатьНастройкиПриложения(КлючНастройкиPrecommit(), ЗначениеНастройки(""));
|
||||
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура УдалитьНастройки() Экспорт
|
||||
|
||||
|
||||
Если НЕ ИспользуютсяЛокальныеНастройки() Тогда
|
||||
|
||||
|
||||
ВызватьИсключение "Нельзя удалять глобальную настройку";
|
||||
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
Настройки().УдалитьНастройкиПриложения(КлючНастройкиPrecommit());
|
||||
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
///////////////////////////////////////////////////////////////////
|
||||
@ -343,24 +343,24 @@
|
||||
Функция КлючНастройки(Знач Проект = Неопределено, КлючНастройки = Неопределено)
|
||||
|
||||
Ключ = Новый Массив();
|
||||
|
||||
|
||||
Проект = НормализованноеИмяПроекта(Проект);
|
||||
|
||||
|
||||
Если ЗначениеЗаполнено(Проект) И ЕстьПроект(Проект) Тогда
|
||||
|
||||
Ключ.Добавить(КлючПроекты());
|
||||
Ключ.Добавить(Проект);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
Если ЗначениеЗаполнено(КлючНастройки) Тогда
|
||||
|
||||
Ключ.Добавить(КлючНастройки);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
Возврат Ключ;
|
||||
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ЕстьПроект(Проект)
|
||||
@ -378,9 +378,9 @@
|
||||
Значение = ЗначениеНастроекПоКлючу(Настройка, "");
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
Возврат Значение;
|
||||
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ЗначениеНастроекПоКлючу(Настройка, КлючНастройки)
|
||||
@ -408,7 +408,7 @@
|
||||
Ключи = КлючЗначения;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
Для каждого Ключ Из Ключи Цикл
|
||||
|
||||
Значение = Значение.Получить(Ключ);
|
||||
@ -418,43 +418,43 @@
|
||||
Прервать;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат Значение;
|
||||
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ЕстьНастройкиPrecommt4onec(Настройка)
|
||||
|
||||
Возврат НЕ Настройка.ЭтоНовый() И ЗначениеНастроекПоКлючу(Настройка, "").Количество();
|
||||
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьЗначениеНастройки(Настройка, КлючНастройки, Подпроект = Неопределено)
|
||||
|
||||
Значение = ЗначениеНастроекПоКлючу(Настройка, КлючНастройки(Подпроект, КлючНастройки));
|
||||
|
||||
|
||||
Возврат Значение;
|
||||
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура УстановитьКаталогГлобальныхНастроек(Каталог) Экспорт
|
||||
|
||||
|
||||
КаталогГлобальныхНастроек = Каталог;
|
||||
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура СбросСостоянияМенеджера() Экспорт
|
||||
|
||||
|
||||
ЛокальныеНастройки = Неопределено;
|
||||
ГлобальныеНастройки = Неопределено;
|
||||
ИспользуютсяЛокальныеНастройки = Ложь;
|
||||
|
||||
|
||||
НастройкиИнициализированы = Ложь;
|
||||
КаталогГлобальныхНастроек = Неопределено;
|
||||
КаталогРепозитория = Неопределено;
|
||||
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
СбросСостоянияМенеджера();
|
||||
СбросСостоянияМенеджера();
|
||||
|
@ -16,15 +16,15 @@
|
||||
Перем ПарсерКоманд;
|
||||
Перем ИсполнителиКоманд;
|
||||
Перем ОбъектНастроек;
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// СЛУЖЕБНЫЙ ОТКРЫТЫЙ ПРОГРАММНЫЙ ИНТЕРФЕЙС
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// Инициализирует и настраивает приложение
|
||||
//
|
||||
//
|
||||
// Параметры:
|
||||
// Настройка - Модуль - Модуль, в котором определены настройки приложения
|
||||
// МенеджерНастроек - Модуль - Модуль, в котором определены настройки приложения
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Модуль - Модуль менеджера приложения
|
||||
@ -33,18 +33,18 @@
|
||||
|
||||
// Служебные переменные
|
||||
ПарсерКоманд = Новый ПарсерАргументовКоманднойСтроки();
|
||||
ИсполнителиКоманд = Новый Соответствие;
|
||||
ИсполнителиКоманд = Новый Соответствие;
|
||||
ОбъектНастроек = МенеджерНастроек;
|
||||
|
||||
|
||||
// Логирование
|
||||
Лог = Логирование.ПолучитьЛог(ОбъектНастроек.ИмяЛогаСистемы());
|
||||
Лог.УстановитьРаскладку(ОбъектНастроек);
|
||||
|
||||
|
||||
// Инициализация команд
|
||||
ОбъектНастроек.НастроитьКомандыПриложения(ЭтотОбъект);
|
||||
|
||||
|
||||
Возврат ЭтотОбъект;
|
||||
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Добавляет команду в приложение
|
||||
@ -52,59 +52,57 @@
|
||||
// Параметры:
|
||||
// ИмяКоманды - Строка - Имя команды
|
||||
// КлассРеализации - Строка - Имя файла класса, в котором реализована команда
|
||||
// Описаниекоманды - Строка - краткое описание назначения команды
|
||||
// ОписаниеКоманды - Строка - краткое описание назначения команды
|
||||
//
|
||||
Процедура ДобавитьКоманду(Знач ИмяКоманды, Знач КлассРеализации, Знач ОписаниеКоманды) Экспорт
|
||||
|
||||
|
||||
Попытка
|
||||
РеализацияКоманды = Новый(КлассРеализации);
|
||||
|
||||
|
||||
Команда = ПарсерКоманд.ОписаниеКоманды(ИмяКоманды, ОписаниеКоманды);
|
||||
ПарсерКоманд.ДобавитьКоманду(Команда);
|
||||
|
||||
РеализацияКоманды.НастроитьКоманду(Команда, ПарсерКоманд);
|
||||
|
||||
|
||||
ИсполнителиКоманд.Вставить(ИмяКоманды, РеализацияКоманды);
|
||||
Исключение
|
||||
ЗавершитьРаботуПриложенияСОшибкой(СтрШаблон("Не удалось инициализировать команду '%1' для класса '%2' по причине:
|
||||
|%3", ИмяКоманды, КлассРеализации, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())));
|
||||
|%3", ИмяКоманды, КлассРеализации, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())));
|
||||
КонецПопытки;
|
||||
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Аварийно завершает работу приложения с ошибкой
|
||||
//
|
||||
//
|
||||
// Параметры:
|
||||
// Сообщение - Строка - Сообщение, которое будет выведено пользователю перед завершением
|
||||
// КодВозврата (не обязательный) - Число - Код возврата с которым будет закрыто приложение
|
||||
// Значение по умолчанию: "ОшибкаВремениВыполнения" -- 1
|
||||
// КодВозврата - Число - Код возврата, с которым будет закрыто приложение. По умолчанию: "ОшибкаВремениВыполнения" -- 1
|
||||
//
|
||||
Процедура ЗавершитьРаботуПриложенияСОшибкой(Знач Сообщение, Знач КодВозврата = Неопределено) Экспорт
|
||||
|
||||
|
||||
Если КодВозврата = Неопределено Тогда
|
||||
КодВозврата = РезультатыКоманд().ОшибкаВремениВыполнения;
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
Лог.КритичнаяОшибка(Сообщение);
|
||||
|
||||
ЗавершитьРаботу(КодВозврата);
|
||||
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Завершает работу приложения
|
||||
//
|
||||
//
|
||||
// Параметры:
|
||||
// КодВозврата (не обязательный) - Число - Код возврата с которым будет закрыто приложение
|
||||
// Значение по умолчанию: "Успех" -- 0
|
||||
// КодВозврата - Число - Код возврата, с которым будет закрыто приложение. По умолчанию: "Успех" -- 0.
|
||||
//
|
||||
Процедура ЗавершитьРаботуПриложения(Знач КодВозврата = Неопределено) Экспорт
|
||||
|
||||
Если КодВозврата = Неопределено Тогда
|
||||
КодВозврата = РезультатыКоманд().Успех;
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
ЗавершитьРаботу(КодВозврата);
|
||||
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Осуществляет запуск приложения на выполнение
|
||||
@ -118,35 +116,35 @@
|
||||
ПараметрыЗапуска = ПарсерКоманд.Разобрать(АргументыКоманднойСтроки);
|
||||
Исключение
|
||||
Лог.Отладка(ОписаниеОшибки());
|
||||
|
||||
|
||||
Лог.Ошибка("Не удалось определить требуемое действие.");
|
||||
ВывестиСправкуПоКомандам();
|
||||
|
||||
|
||||
Возврат РезультатыКоманд().НеверныеПараметры;
|
||||
Конецпопытки;
|
||||
|
||||
КонецПопытки;
|
||||
|
||||
Команда = "";
|
||||
ЗначенияПараметров = Неопределено;
|
||||
|
||||
Если ПараметрыЗапуска = Неопределено ИЛИ ПараметрыЗапуска.Количество() = 0 Тогда
|
||||
|
||||
|
||||
ВывестиВерсию();
|
||||
ВывестиСправкуПоКомандам();
|
||||
|
||||
|
||||
Возврат РезультатыКоманд().НеверныеПараметры;
|
||||
|
||||
|
||||
ИначеЕсли ТипЗнч(ПараметрыЗапуска) = Тип("Структура") Тогда
|
||||
|
||||
// это команда
|
||||
Команда = ПараметрыЗапуска.Команда;
|
||||
ЗначенияПараметров = ПараметрыЗапуска.ЗначенияПараметров;
|
||||
Команда = ПараметрыЗапуска.Команда;
|
||||
ЗначенияПараметров = ПараметрыЗапуска.ЗначенияПараметров;
|
||||
Лог.Отладка("Выполняю команду продукта %1", Команда);
|
||||
|
||||
ИначеЕсли ЗначениеЗаполнено(ОбъектНастроек.ИмяКомандыПоУмолчанию()) Тогда
|
||||
|
||||
// это команда по-умолчанию
|
||||
Команда = ОбъектНастроек.ИмяКомандыПоУмолчанию();
|
||||
ЗначенияПараметров = ПараметрыЗапуска;
|
||||
Команда = ОбъектНастроек.ИмяКомандыПоУмолчанию();
|
||||
ЗначенияПараметров = ПараметрыЗапуска;
|
||||
Лог.Отладка("Выполняю команду продукта по умолчанию %1", Команда);
|
||||
|
||||
Иначе
|
||||
@ -156,9 +154,9 @@
|
||||
КонецЕсли;
|
||||
|
||||
Если Команда <> ОбъектНастроек.ИмяКомандыВерсия() Тогда
|
||||
|
||||
|
||||
ВывестиВерсию();
|
||||
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Возврат ВыполнитьКоманду(Команда, ЗначенияПараметров);
|
||||
@ -175,13 +173,13 @@
|
||||
|
||||
Команда = ПолучитьКоманду(ИмяКоманды);
|
||||
КодВозврата = Команда.ВыполнитьКоманду(ПараметрыКоманды, ЭтотОбъект);
|
||||
|
||||
|
||||
Если КодВозврата = Неопределено Тогда
|
||||
КодВозврата = РезультатыКоманд().Успех;
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
Возврат КодВозврата;
|
||||
|
||||
|
||||
КонецФункции // ВыполнитьКоманду
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
@ -190,9 +188,9 @@
|
||||
|
||||
// Возвращает лог приложения
|
||||
Функция ПолучитьЛог() Экспорт
|
||||
|
||||
|
||||
Возврат Лог;
|
||||
|
||||
|
||||
КонецФункции // ПолучитьЛог
|
||||
|
||||
// Возвращает версию продукта
|
||||
@ -232,16 +230,16 @@
|
||||
|
||||
// Выводит справку по всем командам приложения
|
||||
Процедура ВывестиСправкуПоКомандам() Экспорт
|
||||
|
||||
|
||||
ПарсерКоманд.ВывестиСправкуПоКомандам();
|
||||
|
||||
КонецПроцедуры // ВывестиСправкуПоКомандам
|
||||
|
||||
// Выводит справку по указанной команде приложения.
|
||||
Процедура ВывестиСправкуПоКоманде(Знач ИмяКоманды) Экспорт
|
||||
|
||||
|
||||
ПарсерКоманд.ВывестиСправкуПоКоманде(ИмяКоманды);
|
||||
|
||||
|
||||
КонецПроцедуры // ВывестиСправкуПоКоманде
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
@ -250,14 +248,14 @@
|
||||
|
||||
// Возвращает стандартные коды возврата приложения
|
||||
Функция РезультатыКоманд() Экспорт
|
||||
|
||||
|
||||
РезультатыКоманд = Новый Структура;
|
||||
РезультатыКоманд.Вставить("Успех", 0);
|
||||
РезультатыКоманд.Вставить("НеверныеПараметры", 5);
|
||||
РезультатыКоманд.Вставить("ОшибкаВремениВыполнения", 1);
|
||||
|
||||
Возврат РезультатыКоманд;
|
||||
|
||||
|
||||
КонецФункции // РезультатыКоманд
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
@ -269,9 +267,9 @@
|
||||
|
||||
КлассРеализации = ИсполнителиКоманд[ИмяКоманды];
|
||||
Если КлассРеализации = Неопределено Тогда
|
||||
|
||||
|
||||
ВызватьИсключение СтрШаблон("Неверная операция. Команда '%1' не предусмотрена.", ИмяКоманды);
|
||||
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Возврат КлассРеализации;
|
||||
@ -290,7 +288,7 @@
|
||||
|
||||
Лог.Ошибка("Некорректные аргументы командной строки");
|
||||
ВывестиСправкуПоКомандам();
|
||||
|
||||
|
||||
Возврат РезультатыКоманд().НеверныеПараметры;
|
||||
|
||||
|
||||
КонецФункции // НекорректныеПараметры()
|
||||
|
99
src/Модули/МетаданныеКонфигурации.os
Normal file
99
src/Модули/МетаданныеКонфигурации.os
Normal file
@ -0,0 +1,99 @@
|
||||
Перем КаталогиТиповМетаданных;
|
||||
Перем КаталогиТиповМетаданныхДляТестов;
|
||||
|
||||
// КаталогиТиповМетаданных
|
||||
// Возвращает список имен каталогов и типов метаданных в них.
|
||||
// Возвращаемое значение:
|
||||
// СписокЗначений - Список каталогов
|
||||
// * Значение - Строка - Имя каталога
|
||||
// * Представление - Срока - Имя типа метаданных
|
||||
Функция КаталогиТиповМетаданных() Экспорт
|
||||
|
||||
Если КаталогиТиповМетаданных = Неопределено Тогда
|
||||
|
||||
КаталогиТиповМетаданных = Новый СписокЗначений();
|
||||
КаталогиТиповМетаданных.Добавить("AccountingRegisters", "AccountingRegister");
|
||||
КаталогиТиповМетаданных.Добавить("AccumulationRegisters", "AccumulationRegister");
|
||||
КаталогиТиповМетаданных.Добавить("Bots", "Bot");
|
||||
КаталогиТиповМетаданных.Добавить("BusinessProcesses", "BusinessProcess");
|
||||
КаталогиТиповМетаданных.Добавить("Catalogs", "Catalog");
|
||||
КаталогиТиповМетаданных.Добавить("ChartsOfAccounts", "ChartOfAccounts");
|
||||
КаталогиТиповМетаданных.Добавить("ChartsOfCalculationTypes", "ChartOfCalculationTypes");
|
||||
КаталогиТиповМетаданных.Добавить("ChartsOfCharacteristicTypes", "ChartOfCharacteristicTypes");
|
||||
КаталогиТиповМетаданных.Добавить("CalculationRegisters", "CalculationRegister");
|
||||
КаталогиТиповМетаданных.Добавить("CommandGroups", "CommandGroup");
|
||||
КаталогиТиповМетаданных.Добавить("CommonAttributes", "CommonAttribute");
|
||||
КаталогиТиповМетаданных.Добавить("CommonCommands", "CommonCommand");
|
||||
КаталогиТиповМетаданных.Добавить("CommonForms", "CommonForm");
|
||||
КаталогиТиповМетаданных.Добавить("CommonModules", "CommonModule");
|
||||
КаталогиТиповМетаданных.Добавить("CommonPictures", "CommonPicture");
|
||||
КаталогиТиповМетаданных.Добавить("CommonTemplates", "CommonTemplate");
|
||||
КаталогиТиповМетаданных.Добавить("Constants", "Constant");
|
||||
КаталогиТиповМетаданных.Добавить("DataProcessors", "DataProcessor");
|
||||
КаталогиТиповМетаданных.Добавить("DefinedTypes", "DefinedType");
|
||||
КаталогиТиповМетаданных.Добавить("DocumentJournals", "DocumentJournal");
|
||||
КаталогиТиповМетаданных.Добавить("DocumentNumerators", "DocumentNumerator");
|
||||
КаталогиТиповМетаданных.Добавить("Documents", "Document");
|
||||
КаталогиТиповМетаданных.Добавить("Enums", "Enum");
|
||||
КаталогиТиповМетаданных.Добавить("EventSubscriptions", "EventSubscription");
|
||||
КаталогиТиповМетаданных.Добавить("ExchangePlans", "ExchangePlan");
|
||||
КаталогиТиповМетаданных.Добавить("ExternalDataSources", "ExternalDataSource");
|
||||
КаталогиТиповМетаданных.Добавить("FilterCriteria", "FilterCriterion");
|
||||
КаталогиТиповМетаданных.Добавить("FunctionalOptions", "FunctionalOption");
|
||||
КаталогиТиповМетаданных.Добавить("FunctionalOptionsParameters", "FunctionalOptionsParameter");
|
||||
КаталогиТиповМетаданных.Добавить("HTTPServices", "HTTPService");
|
||||
КаталогиТиповМетаданных.Добавить("InformationRegisters", "InformationRegister");
|
||||
КаталогиТиповМетаданных.Добавить("Languages", "Language");
|
||||
КаталогиТиповМетаданных.Добавить("Reports", "Report");
|
||||
КаталогиТиповМетаданных.Добавить("Roles", "Role");
|
||||
КаталогиТиповМетаданных.Добавить("ScheduledJobs", "ScheduledJob");
|
||||
КаталогиТиповМетаданных.Добавить("SessionParameters", "SessionParameter");
|
||||
КаталогиТиповМетаданных.Добавить("SettingsStorages", "SettingsStorage");
|
||||
КаталогиТиповМетаданных.Добавить("StyleItems", "StyleItem");
|
||||
КаталогиТиповМетаданных.Добавить("Sequences", "Sequence");
|
||||
КаталогиТиповМетаданных.Добавить("Styles", "Style");
|
||||
КаталогиТиповМетаданных.Добавить("Subsystems", "Subsystem");
|
||||
КаталогиТиповМетаданных.Добавить("Tasks", "Task");
|
||||
КаталогиТиповМетаданных.Добавить("WebServices", "WebService");
|
||||
КаталогиТиповМетаданных.Добавить("WSReferences", "WSReference");
|
||||
КаталогиТиповМетаданных.Добавить("XDTOPackages", "XDTOPackage");
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Возврат КаталогиТиповМетаданных;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// КаталогиТиповМетаданныхДляТестов
|
||||
// Возвращает список имен каталогов типов метаданных, для которых генерируются тесты, и их краткие представления.
|
||||
// Возвращаемое значение:
|
||||
// СписокЗначений - Список каталогов
|
||||
// * Значение - Строка - Имя каталога
|
||||
// * Представление - Срока - Краткое представление
|
||||
Функция КаталогиТиповМетаданныхДляТестов() Экспорт
|
||||
|
||||
Если КаталогиТиповМетаданныхДляТестов = Неопределено Тогда
|
||||
|
||||
КаталогиТиповМетаданныхДляТестов = Новый СписокЗначений();
|
||||
КаталогиТиповМетаданныхДляТестов.Добавить("AccountingRegisters", "РБ");
|
||||
КаталогиТиповМетаданныхДляТестов.Добавить("AccumulationRegisters", "РН");
|
||||
КаталогиТиповМетаданныхДляТестов.Добавить("BusinessProcesses", "БП");
|
||||
КаталогиТиповМетаданныхДляТестов.Добавить("CalculationRegisters", "РР");
|
||||
КаталогиТиповМетаданныхДляТестов.Добавить("Catalogs", "Спр");
|
||||
КаталогиТиповМетаданныхДляТестов.Добавить("ChartsOfAccounts", "ПС");
|
||||
КаталогиТиповМетаданныхДляТестов.Добавить("ChartsOfCalculationTypes", "ПВР");
|
||||
КаталогиТиповМетаданныхДляТестов.Добавить("ChartsOfCharacteristicTypes", "ПВХ");
|
||||
КаталогиТиповМетаданныхДляТестов.Добавить("CommonModules", "ОМ");
|
||||
КаталогиТиповМетаданныхДляТестов.Добавить("DataProcessors", "Обр");
|
||||
КаталогиТиповМетаданныхДляТестов.Добавить("Documents", "Док");
|
||||
КаталогиТиповМетаданныхДляТестов.Добавить("Enums", "Пер");
|
||||
КаталогиТиповМетаданныхДляТестов.Добавить("ExchangePlans", "ПО");
|
||||
КаталогиТиповМетаданныхДляТестов.Добавить("InformationRegisters", "РС");
|
||||
КаталогиТиповМетаданныхДляТестов.Добавить("Reports", "Отч");
|
||||
КаталогиТиповМетаданныхДляТестов.Добавить("Tasks", "Зад");
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Возврат КаталогиТиповМетаданныхДляТестов;
|
||||
|
||||
КонецФункции
|
@ -2,7 +2,7 @@
|
||||
//
|
||||
// Служебный модуль с набором служебных параметров приложения
|
||||
//
|
||||
// При создании нового приложения обязательно внести изменение
|
||||
// При создании нового приложения обязательно внести изменение
|
||||
// в ф-ии ИмяПродукта, указав имя вашего приложения.
|
||||
//
|
||||
// При выпуске новой версии обязательно изменить ее значение
|
||||
@ -83,11 +83,11 @@
|
||||
// См. описание метода "УстановитьРаскладку" библиотеки logos
|
||||
//
|
||||
Функция Форматировать(Знач Уровень, Знач Сообщение) Экспорт
|
||||
|
||||
Возврат СтрШаблон("%1: %2 - %3", ТекущаяДата(), УровниЛога.НаименованиеУровня(Уровень), Сообщение);
|
||||
|
||||
КонецФункции
|
||||
|
||||
Возврат СтрШаблон("%1: %2 - %3", ТекущаяДата(), УровниЛога.НаименованиеУровня(Уровень), Сообщение);
|
||||
|
||||
КонецФункции
|
||||
|
||||
// ИмяЛогаСистемы
|
||||
// Возвращает идентификатор лога приложения
|
||||
//
|
||||
@ -112,7 +112,7 @@
|
||||
Функция ИмяКомандыВерсия() Экспорт
|
||||
|
||||
Возврат "version";
|
||||
|
||||
|
||||
КонецФункции // ИмяКомандыВерсия
|
||||
|
||||
// Возвращает имя команды "help" (ключ командной строки)
|
||||
@ -121,7 +121,7 @@
|
||||
// Строка - имя команды
|
||||
//
|
||||
Функция ИмяКомандыПомощь() Экспорт
|
||||
|
||||
|
||||
Возврат "help";
|
||||
|
||||
КонецФункции // ИмяКомандыПомощь()
|
||||
@ -129,7 +129,7 @@
|
||||
// ИмяКомандыПоУмолчанию
|
||||
// Одна из команд может вызываться неявно, без указания команды.
|
||||
// Иными словами, здесь указывается какой обработчик надо вызывать, если приложение запущено без какой-либо команды
|
||||
// myapp /home/user/somefile.txt будет аналогично myapp default-action /home/user/somefile.txt
|
||||
// myapp /home/user/somefile.txt будет аналогично myapp default-action /home/user/somefile.txt
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Строка - имя команды по умолчанию
|
||||
@ -140,19 +140,19 @@
|
||||
КонецФункции // ИмяКомандыПоУмолчанию
|
||||
|
||||
// НастроитьКомандыПриложения
|
||||
// Регистрирует классы обрабатывающие команды прилоложения
|
||||
//
|
||||
// Регистрирует классы обрабатывающие команды приложения
|
||||
//
|
||||
// Параметры:
|
||||
// Приложение - Модуль - Модуль менеджера приложения
|
||||
Процедура НастроитьКомандыПриложения(Знач Приложение) Экспорт
|
||||
|
||||
Приложение.ДобавитьКоманду(ИмяКомандыПомощь(), "КомандаСправкаПоПараметрам", "Выводит справку по командам");
|
||||
Приложение.ДобавитьКоманду(ИмяКомандыВерсия(), "КомандаVersion", "Выводит версию приложения");
|
||||
Приложение.ДобавитьКоманду("precommit", "КомандаПрекоммит", "Выполняет сценарии precommit");
|
||||
Приложение.ДобавитьКоманду("install", "КомандаИнсталл",
|
||||
"Выполняет подключение (установку) precommit hook'а в репозиторий");
|
||||
Приложение.ДобавитьКоманду("configure", "КомандаКонфигуратион", "Выполняет настройку репозитория");
|
||||
Приложение.ДобавитьКоманду("exec-rules", "КомандаВыполнитьСценарии",
|
||||
"Выполняет указанные сценарии в каталоге репозитория принудительно, без обращения к git");
|
||||
Приложение.ДобавитьКоманду(ИмяКомандыПомощь(), "КомандаСправкаПоПараметрам", "Выводит справку по командам");
|
||||
Приложение.ДобавитьКоманду(ИмяКомандыВерсия(), "КомандаVersion", "Выводит версию приложения");
|
||||
Приложение.ДобавитьКоманду("precommit", "КомандаПрекоммит", "Выполняет сценарии precommit");
|
||||
Приложение.ДобавитьКоманду("install", "КомандаИнсталл",
|
||||
"Выполняет подключение (установку) precommit hook'а в репозиторий");
|
||||
Приложение.ДобавитьКоманду("configure", "КомандаКонфигуратион", "Выполняет настройку репозитория");
|
||||
Приложение.ДобавитьКоманду("exec-rules", "КомандаВыполнитьСценарии",
|
||||
"Выполняет указанные сценарии в каталоге репозитория принудительно, без обращения к git");
|
||||
|
||||
КонецПроцедуры // ПриРегистрацииКомандПриложения
|
||||
|
@ -101,12 +101,15 @@
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ПолучитьСтандартныеПараметрыОбработки() Экспорт
|
||||
|
||||
Лог = МенеджерПриложения.ПолучитьЛог();
|
||||
|
||||
ПараметрыОбработки = Новый Структура();
|
||||
ПараметрыОбработки.Вставить("Лог", Лог);
|
||||
ПараметрыОбработки.Вставить("ФайлыДляПостОбработки", Новый Массив);
|
||||
ПараметрыОбработки.Вставить("ИзмененныеКаталоги", Новый Массив);
|
||||
ПараметрыОбработки.Вставить("Лог", Лог);
|
||||
ПараметрыОбработки.Вставить("КаталогРепозитория", Неопределено);
|
||||
ПараметрыОбработки.Вставить("ТекущийКаталогИсходныхФайлов", Неопределено);
|
||||
ПараметрыОбработки.Вставить("Настройки", Неопределено);
|
||||
|
||||
Возврат ПараметрыОбработки;
|
||||
@ -118,7 +121,7 @@
|
||||
// Параметры:
|
||||
// КаталогРепозитория - <Строка> - <Адрес каталога репозитория>
|
||||
// ИменаЗагружаемыхСценариев - <Массив.Строка> - <Предназначен для переопределения сценариев,
|
||||
// Если задан загрузятся только они >
|
||||
// Если задан загрузятся только они >
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// <Соответствие> - <ключ - Ключ структуры настроек прекоммит или
|
||||
@ -127,8 +130,6 @@
|
||||
//
|
||||
Функция ПолучитьСценарииСПараметрамиВыполнения(КаталогРепозитория, ИменаЗагружаемыхСценариев = Неопределено) Экспорт
|
||||
|
||||
ПараметрыОбработки = СценарииОбработки.ПолучитьСтандартныеПараметрыОбработки();
|
||||
ПараметрыОбработки.КаталогРепозитория = КаталогРепозитория;
|
||||
НастройкиПроектов = МенеджерНастроек.ПроектыКонфигурации();
|
||||
НаборНастроек = Новый Соответствие;
|
||||
|
||||
@ -149,9 +150,9 @@
|
||||
|
||||
Настройка = Новый Структура("СценарииОбработки, НастройкиСценариев");
|
||||
Если ИменаЗагружаемыхСценариев = Неопределено Тогда
|
||||
ИменаЗагружаемыхСценариев = МенеджерНастроек.ИменаЗагружаемыхСценариев(ИмяПроекта)
|
||||
ИменаЗагружаемыхСценариев = МенеджерНастроек.ИменаЗагружаемыхСценариев(ИмяПроекта);
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
Настройка.СценарииОбработки = СценарииОбработки.Загрузить(КаталогРепозитория,
|
||||
ИмяПроекта,
|
||||
ИменаЗагружаемыхСценариев);
|
||||
@ -202,9 +203,9 @@
|
||||
Функция НастройкиСценариев(ИменаСценариев, Знач КаталогСценариев = Неопределено) Экспорт
|
||||
|
||||
Если КаталогСценариев = Неопределено Тогда
|
||||
|
||||
|
||||
КаталогСценариев = МенеджерПриложения.КаталогСценариев();
|
||||
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
НастройкиСценариев = Новый Соответствие;
|
||||
@ -225,4 +226,4 @@
|
||||
|
||||
Возврат НастройкиСценариев;
|
||||
|
||||
КонецФункции
|
||||
КонецФункции
|
||||
|
@ -7,7 +7,7 @@
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// ЭтоФайлИсходников
|
||||
// Возвращает истину, если файл является файлом исходных кодов
|
||||
// Возвращает истину, если файл является файлом исходных кодов
|
||||
// Параметры:
|
||||
// Файл - Файл - Полный путь к файлу
|
||||
//
|
||||
@ -196,4 +196,130 @@
|
||||
|
||||
Возврат СтрСравнить(Файл.Имя, "Form.form") = 0;
|
||||
|
||||
КонецФункции
|
||||
КонецФункции
|
||||
|
||||
// ЭтоФайлЧастьТеста
|
||||
// Возвращает истину, если файл относится к тестовому расширению
|
||||
// Параметры:
|
||||
// Файл - Файл - Полный путь к файлу
|
||||
// КаталогРепозитория - Строка - Путь к репозиторию, для более точного определения принадлежности, необязательный
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Булево - Признак
|
||||
//
|
||||
Функция ЭтоФайлЧастьТеста(Файл, КаталогРепозитория = Неопределено) Экспорт
|
||||
|
||||
ПутьКФайлу = НРег(ПолучитьОтносительныйПуть(Файл.Путь, КаталогРепозитория));
|
||||
|
||||
Возврат СтрНайти(ПутьКФайлу, СтрШаблон("%1tests%1", ПолучитьРазделительПути())) <> 0;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// ЭтоОбщийМодуль
|
||||
// Возвращает истину, если файл является общим модулем
|
||||
// Параметры:
|
||||
// Файл - Файл - Полный путь к файлу
|
||||
// КаталогИсходныхФайлов - Строка - Путь к исходникам, для более точного определения принадлежности, необязательный
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Булево - Признак
|
||||
//
|
||||
Функция ЭтоОбщийМодуль(Файл, КаталогИсходныхФайлов = Неопределено) Экспорт
|
||||
|
||||
Если ПустаяСтрока(Файл.Расширение) Тогда
|
||||
|
||||
Возврат Ложь;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ПутьКФайлу = НРег(ПолучитьОтносительныйПуть(Файл.Путь, КаталогИсходныхФайлов));
|
||||
|
||||
Возврат СтрСравнить(Файл.Имя, "Module.bsl") = 0
|
||||
И СтрНайти(ПутьКФайлу, СтрШаблон("%1commonmodules%1", ПолучитьРазделительПути())) <> 0;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// ЭтоМодульМенеджера
|
||||
// Возвращает истину, если файл является модулем менеджера
|
||||
// Параметры:
|
||||
// Файл - Файл - Полный путь к файлу
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Булево - Признак
|
||||
//
|
||||
Функция ЭтоМодульМенеджера(Файл) Экспорт
|
||||
|
||||
Если ПустаяСтрока(Файл.Расширение) Тогда
|
||||
|
||||
Возврат Ложь;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Возврат СтрСравнить(Файл.Имя, "ManagerModule.bsl") = 0;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// ЭтоМодульОбъекта
|
||||
// Возвращает истину, если файл является модулем объекта
|
||||
// Параметры:
|
||||
// Файл - Файл - Полный путь к файлу
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Булево - Признак
|
||||
//
|
||||
Функция ЭтоМодульОбъекта(Файл) Экспорт
|
||||
|
||||
Если ПустаяСтрока(Файл.Расширение) Тогда
|
||||
|
||||
Возврат Ложь;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Возврат СтрСравнить(Файл.Имя, "ObjectModule.bsl") = 0;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// ЭтоМодульНабораЗаписей
|
||||
// Возвращает истину, если файл является модулем набора записей
|
||||
// Параметры:
|
||||
// Файл - Файл - Полный путь к файлу
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Булево - Признак
|
||||
//
|
||||
Функция ЭтоМодульНабораЗаписей(Файл) Экспорт
|
||||
|
||||
Если ПустаяСтрока(Файл.Расширение) Тогда
|
||||
|
||||
Возврат Ложь;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Возврат СтрСравнить(Файл.Имя, "RecordSetModule.bsl") = 0;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьОтносительныйПуть(Путь, Надкаталог)
|
||||
|
||||
Результат = Путь;
|
||||
|
||||
Если Не ЗначениеЗаполнено(Надкаталог) Тогда
|
||||
Возврат Результат;
|
||||
КонецЕсли;
|
||||
|
||||
ДлинаПутиНадкаталога = СтрДлина(Надкаталог);
|
||||
Если СтрСравнить(Надкаталог, Лев(Путь, ДлинаПутиНадкаталога)) = 0 Тогда
|
||||
|
||||
Результат = Сред(Путь, ДлинаПутиНадкаталога + 1);
|
||||
|
||||
Если Не СтрНачинаетсяС(Результат, ПолучитьРазделительПути()) Тогда
|
||||
|
||||
Результат = ПолучитьРазделительПути() + Результат;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
460
src/СценарииОбработки/ДобавлениеТестовВРасширение.os
Normal file
460
src/СценарииОбработки/ДобавлениеТестовВРасширение.os
Normal file
@ -0,0 +1,460 @@
|
||||
Перем Лог;
|
||||
Перем ЗаголовокЛога;
|
||||
|
||||
// ИмяСценария
|
||||
// Возвращает имя сценария обработки файлов
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Строка - Имя текущего сценария обработки файлов
|
||||
//
|
||||
Функция ИмяСценария() Экспорт
|
||||
|
||||
Возврат "ДобавлениеТестовВРасширение";
|
||||
|
||||
КонецФункции // ИмяСценария()
|
||||
|
||||
// ОбработатьФайл
|
||||
// Выполняет обработку файла
|
||||
//
|
||||
// Параметры:
|
||||
// АнализируемыйФайл - Файл - Файл из журнала git для анализа
|
||||
// КаталогИсходныхФайлов - Строка - Каталог расположения исходных файлов относительно каталог репозитория
|
||||
// ДополнительныеПараметры - Структура - Набор дополнительных параметров, которые можно использовать
|
||||
// * Лог - Объект - Текущий лог
|
||||
// * ИзмененныеКаталоги - Массив - Каталоги / файлы, которые необходимо добавить в индекс
|
||||
// * КаталогРепозитория - Строка - Адрес каталога репозитория
|
||||
// * ФайлыДляПостОбработки - Массив - Файлы, изменившиеся / образовавшиеся в результате работы сценария
|
||||
// и которые необходимо дообработать
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Булево - Признак выполненной обработки файла
|
||||
//
|
||||
Функция ОбработатьФайл(АнализируемыйФайл, КаталогИсходныхФайлов, ДополнительныеПараметры) Экспорт
|
||||
|
||||
Лог = ДополнительныеПараметры.Лог;
|
||||
ЗаголовокЛога = СтрШаблон("Обработка файла '%1' по сценарию '%2'", АнализируемыйФайл.ПолноеИмя, ИмяСценария());
|
||||
|
||||
Если Не ЗначениеЗаполнено(КаталогИсходныхФайлов) Тогда
|
||||
ВызватьИсключение ЗаголовокЛога + ": не заполнен параметр 'КаталогИсходныхФайлов'";
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ЗначениеЗаполнено(ДополнительныеПараметры.КаталогРепозитория) Тогда
|
||||
ВызватьИсключение ЗаголовокЛога + ": не заполнен параметр 'ДополнительныеПараметры.КаталогРепозитория'";
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ИспользуетсяФорматEDT(КаталогИсходныхФайлов) Тогда
|
||||
|
||||
Лог.Отладка(ЗаголовокЛога + ": это не формат EDT в каталоге исходных файлов '%1'", КаталогИсходныхФайлов);
|
||||
Возврат Ложь;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ИспользуетсяРасширениеСТестами(ДополнительныеПараметры.КаталогРепозитория) Тогда
|
||||
|
||||
Лог.Отладка(ЗаголовокЛога + ": нет расширения с тестами в каталоге репозитория 'tests'");
|
||||
Возврат Ложь;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Если Не АнализируемыйФайл.Существует()
|
||||
Или Не ТипыФайлов.ЭтоФайлИсходников(АнализируемыйФайл)
|
||||
Или ТипыФайлов.ЭтоФайлЧастьТеста(АнализируемыйФайл, ДополнительныеПараметры.КаталогРепозитория) Тогда
|
||||
|
||||
Лог.Отладка(ЗаголовокЛога + ": это не файл исходников проекта");
|
||||
Возврат Ложь;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
МетодыМодуля = МетодыМодуля(
|
||||
АнализируемыйФайл.ПолноеИмя,
|
||||
"^\s*?(?:Процедура|Функция|Procedure|Function)\s+?([а-яА-ЯёЁ0-9_\w]+?)\s*?\([^\)]*?\)\s*?(?:Экспорт|Export)");
|
||||
Если МетодыМодуля.Количество() = 0 Тогда
|
||||
|
||||
Лог.Отладка(ЗаголовокЛога + ": нет экспортных методов в файле исходников");
|
||||
Возврат Ложь;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
МетаИнформацияФайла = МетаинформацияФайла(КаталогИсходныхФайлов, АнализируемыйФайл);
|
||||
Если МетаИнформацияФайла = Неопределено Тогда
|
||||
Возврат Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
Лог.Информация(ЗаголовокЛога);
|
||||
|
||||
Возврат ТестыОбновлены(ДополнительныеПараметры, МетаИнформацияФайла, МетодыМодуля);
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ИспользуетсяФорматEDT(КаталогИсходныхФайлов)
|
||||
|
||||
ФайлОписанияКонфигурации = Новый Файл(ОбъединитьПути(КаталогИсходныхФайлов, ОтносительныйПутьФайлаОписанияКонфигурацииEDT()));
|
||||
Возврат ФайлОписанияКонфигурации.Существует();
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ИспользуетсяРасширениеСТестами(КаталогРепозитория)
|
||||
|
||||
ФайлОписанияКонфигурации = Новый Файл(ОбъединитьПути(КаталогРепозитория, "tests", ОтносительныйПутьФайлаОписанияКонфигурацииEDT()));
|
||||
Возврат ФайлОписанияКонфигурации.Существует();
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ОтносительныйПутьФайлаОписанияКонфигурацииEDT()
|
||||
|
||||
Возврат ОбъединитьПути("src", "Configuration", "Configuration.mdo");
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция МетодыМодуля(ИмяФайла, Паттерн)
|
||||
|
||||
Методы = Новый Массив();
|
||||
|
||||
ТекстМодуля = ФайловыеОперации.ПрочитатьТекстФайла(ИмяФайла);
|
||||
Если ПустаяСтрока(ТекстМодуля) Тогда
|
||||
Возврат Методы;
|
||||
КонецЕсли;
|
||||
|
||||
ШаблонПоиска = Новый РегулярноеВыражение(Паттерн);
|
||||
ШаблонПоиска.Многострочный = Истина;
|
||||
ШаблонПоиска.ИгнорироватьРегистр = Истина;
|
||||
Совпадения = ШаблонПоиска.НайтиСовпадения(ТекстМодуля);
|
||||
|
||||
Для Каждого Совпадение Из Совпадения Цикл
|
||||
|
||||
Методы.Добавить(Совпадение.Группы[1].Значение);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат Методы;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция МетаинформацияФайла(КаталогИсходныхФайлов, АнализируемыйФайл)
|
||||
|
||||
ФайлКаталогИсходников = Новый Файл(КаталогИсходныхФайлов);
|
||||
КраткийПуть = СтрЗаменить(АнализируемыйФайл.ПолноеИмя, ФайлКаталогИсходников.ПолноеИмя, "");
|
||||
Если СтрНачинаетсяС(КраткийПуть, ПолучитьРазделительПути()) Тогда
|
||||
КраткийПуть = Сред(КраткийПуть, 2);
|
||||
КонецЕсли;
|
||||
СоставКраткогоПутиКФайлу = СтрРазделить(КраткийПуть, ПолучитьРазделительПути());
|
||||
ОжидаемоеКоличествоУровней = 4; // src\<КаталогТипаМетаданных>\<ИмяОбъектаМетаданных>\<ФайлИсходников>
|
||||
Если СоставКраткогоПутиКФайлу.Количество() < ОжидаемоеКоличествоУровней Тогда
|
||||
|
||||
Лог.Отладка(ЗаголовокЛога + ": неизвестное расположение в каталоге исходных файлов");
|
||||
Возврат Неопределено;
|
||||
|
||||
КонецЕсли;
|
||||
КаталогТипаМетаданных = СоставКраткогоПутиКФайлу[1];
|
||||
|
||||
ЭлементСписка = МетаданныеКонфигурации.КаталогиТиповМетаданных().НайтиПоЗначению(КаталогТипаМетаданных);
|
||||
Если ЭлементСписка = Неопределено Тогда
|
||||
|
||||
Лог.Отладка(ЗаголовокЛога + ": не удалось определить тип объекта метаданных '%1'", КаталогТипаМетаданных);
|
||||
Возврат Неопределено;
|
||||
|
||||
КонецЕсли;
|
||||
ТипМетаданных = ЭлементСписка.Представление;
|
||||
|
||||
ЭлементСписка = МетаданныеКонфигурации.КаталогиТиповМетаданныхДляТестов().НайтиПоЗначению(КаталогТипаМетаданных);
|
||||
Если ЭлементСписка = Неопределено Тогда
|
||||
|
||||
Лог.Отладка(ЗаголовокЛога + ": тесты не генерируются для типа метаданных '%1' ", КаталогТипаМетаданных);
|
||||
Возврат Неопределено;
|
||||
|
||||
КонецЕсли;
|
||||
КраткоеПредставлениеТипаМетаданных = ЭлементСписка.Представление;
|
||||
|
||||
ИмяОбъектаМетаданных = СоставКраткогоПутиКФайлу[2];
|
||||
ИмяТестовогоМодуля = СтрШаблон("%1_%2", КраткоеПредставлениеТипаМетаданных, ИмяОбъектаМетаданных);
|
||||
|
||||
Метаинформация = Новый Структура();
|
||||
Метаинформация.Вставить("ТипМетаданных", ТипМетаданных);
|
||||
Метаинформация.Вставить("КраткоеПредставление", КраткоеПредставлениеТипаМетаданных);
|
||||
Метаинформация.Вставить("ИмяТестовогоМодуля", ИмяТестовогоМодуля);
|
||||
Метаинформация.Вставить("Глобальный", Ложь);
|
||||
Метаинформация.Вставить("Клиент", Ложь);
|
||||
Метаинформация.Вставить("Сервер", Ложь);
|
||||
|
||||
Если ТипыФайлов.ЭтоОбщийМодуль(АнализируемыйФайл, КаталогИсходныхФайлов) Тогда
|
||||
|
||||
// src\CommonModules\ОбщийМодуль\Module.bsl
|
||||
ФайлОписания = Новый Файл(ОбъединитьПути(АнализируемыйФайл.Путь, ИмяОбъектаМетаданных + ".mdo"));
|
||||
Если ФайлОписания.Существует() Тогда
|
||||
|
||||
ТекстОписания = ФайловыеОперации.ПрочитатьТекстФайла(ФайлОписания.ПолноеИмя);
|
||||
Метаинформация.Глобальный = СтрНайти(ТекстОписания, "<global>true</global>") <> 0;
|
||||
Метаинформация.Клиент = СтрНайти(ТекстОписания, "<clientManagedApplication>true</clientManagedApplication>") <> 0;
|
||||
Метаинформация.Сервер = СтрНайти(ТекстОписания, "<server>true</server>") <> 0;
|
||||
|
||||
Иначе
|
||||
|
||||
ВызватьИсключение СтрШаблон(ЗаголовокЛога + ": не найден файл описания общего модуля");
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ИначеЕсли ТипыФайлов.ЭтоМодульМенеджера(АнализируемыйФайл) Тогда
|
||||
|
||||
// src\Catalogs\Справочник\ManagerModule.bsl
|
||||
Метаинформация.Сервер = Истина;
|
||||
Метаинформация.ИмяТестовогоМодуля = СтрШаблон("%1_%2", Метаинформация.ИмяТестовогоМодуля, "ММ");
|
||||
|
||||
ИначеЕсли ТипыФайлов.ЭтоМодульОбъекта(АнализируемыйФайл) Тогда
|
||||
|
||||
// src\Catalogs\Справочник\ObjectModule.bsl
|
||||
Метаинформация.Сервер = Истина;
|
||||
Метаинформация.ИмяТестовогоМодуля = СтрШаблон("%1_%2", Метаинформация.ИмяТестовогоМодуля, "МО");
|
||||
|
||||
ИначеЕсли ТипыФайлов.ЭтоМодульНабораЗаписей(АнализируемыйФайл) Тогда
|
||||
|
||||
// src\InformationRegisters\Регистр\RecordSetModule.bsl
|
||||
Метаинформация.Сервер = Истина;
|
||||
Метаинформация.ИмяТестовогоМодуля = СтрШаблон("%1_%2", Метаинформация.ИмяТестовогоМодуля, "МНЗ");
|
||||
|
||||
Иначе
|
||||
|
||||
Лог.Отладка(ЗаголовокЛога + ": неподходящий тип исходного файла");
|
||||
Возврат Неопределено;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Метаинформация;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ТестыОбновлены(ДополнительныеПараметры, МетаИнформацияФайла, Методы)
|
||||
|
||||
ИзмененныеФайлы = Новый Массив();
|
||||
|
||||
КаталогТестов = ОбъединитьПути(ДополнительныеПараметры.КаталогРепозитория, "tests");
|
||||
КаталогМодулей = ОбъединитьПути(КаталогТестов, "src", "CommonModules");
|
||||
|
||||
ПутьФайлаМодуляТеста = ОбъединитьПути(КаталогМодулей, МетаИнформацияФайла.ИмяТестовогоМодуля, "Module.bsl");
|
||||
ФайлМодуляТеста = Новый Файл(ПутьФайлаМодуляТеста);
|
||||
Если Не ФайлМодуляТеста.Существует() Тогда
|
||||
|
||||
// Добавление общего модуля в расширение.
|
||||
ФайлКаталогаМодуляТеста = Новый Файл(ФайлМодуляТеста.Путь);
|
||||
Если Не ФайлКаталогаМодуляТеста.Существует() Тогда
|
||||
СоздатьКаталог(ФайлКаталогаМодуляТеста.ПолноеИмя);
|
||||
КонецЕсли;
|
||||
|
||||
// Описание модуля.
|
||||
ПутьФайлаОписанияТеста = ОбъединитьПути(
|
||||
КаталогМодулей,
|
||||
МетаИнформацияФайла.ИмяТестовогоМодуля,
|
||||
МетаИнформацияФайла.ИмяТестовогоМодуля + ".mdo");
|
||||
ОписаниеМодуля = СтрШаблон(
|
||||
ШаблонОписанияТеста(),
|
||||
Строка(Новый УникальныйИдентификатор()),
|
||||
МетаИнформацияФайла.ИмяТестовогоМодуля,
|
||||
XMLСтрока(МетаИнформацияФайла.Клиент),
|
||||
XMLСтрока(МетаИнформацияФайла.Сервер));
|
||||
ТекстовыйДокумент = Новый ТекстовыйДокумент();
|
||||
ТекстовыйДокумент.УстановитьТекст(ОписаниеМодуля);
|
||||
ТекстовыйДокумент.Записать(ПутьФайлаОписанияТеста, КодировкаТекста.UTF8);
|
||||
|
||||
// Текст модуля.
|
||||
ТекстыТеста = ТекстыТеста(Методы, МетаИнформацияФайла);
|
||||
|
||||
ТекстМодуля = СтрШаблон(
|
||||
ШаблонТестовогоМодуля(),
|
||||
СтрСоединить(ТекстыТеста.ИсполняемыеСценарии, Символы.ПС),
|
||||
СтрСоединить(ТекстыТеста.ТестовыеМетоды, Символы.ПС + Символы.ПС));
|
||||
ТекстовыйДокумент = Новый ТекстовыйДокумент();
|
||||
ТекстовыйДокумент.УстановитьТекст(ТекстМодуля);
|
||||
ТекстовыйДокумент.Записать(ПутьФайлаМодуляТеста, КодировкаТекста.UTF8);
|
||||
|
||||
// Описание конфигурации тестов.
|
||||
ПутьФайлаОписанияРасширенияТестов = ОбъединитьПути(КаталогТестов, "src", "Configuration", "Configuration.mdo");
|
||||
ТекстОписанияРасширенияТестов = ФайловыеОперации.ПрочитатьТекстФайла(ПутьФайлаОписанияРасширенияТестов);
|
||||
ТекстОписанияРасширенияТестов = СтрЗаменить(
|
||||
ТекстОписанияРасширенияТестов,
|
||||
"</mdclass:Configuration>",
|
||||
СтрШаблон(
|
||||
" <commonModules>CommonModule.%1</commonModules>
|
||||
|</mdclass:Configuration>",
|
||||
МетаИнформацияФайла.ИмяТестовогоМодуля));
|
||||
ФайловыеОперации.ЗаписатьТекстФайла(ПутьФайлаОписанияРасширенияТестов, ТекстОписанияРасширенияТестов);
|
||||
|
||||
ИзмененныеФайлы.Добавить(ПутьФайлаОписанияТеста);
|
||||
ИзмененныеФайлы.Добавить(ПутьФайлаМодуляТеста);
|
||||
ИзмененныеФайлы.Добавить(ПутьФайлаОписанияРасширенияТестов);
|
||||
|
||||
Лог.Информация("Добавлен модуль тестов '%1'", ПутьФайлаМодуляТеста);
|
||||
|
||||
Иначе
|
||||
|
||||
// Добавление отсутствующих сценариев в тестовый модуль.
|
||||
НовыеМетоды = НовыйМетодыМодуляТестов(ПутьФайлаМодуляТеста, МетаИнформацияФайла, Методы);
|
||||
Если НовыеМетоды.Количество() = 0 Тогда
|
||||
|
||||
Лог.Отладка(ЗаголовокЛога + ": все экспортные методы тестов уже есть в модуле '%1'", ПутьФайлаМодуляТеста);
|
||||
Возврат Ложь;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ДанныеТеста = ТекстыТеста(НовыеМетоды, МетаИнформацияФайла);
|
||||
ТекстМодуля = ФайловыеОперации.ПрочитатьТекстФайла(ПутьФайлаМодуляТеста);
|
||||
ТекстМодуля = СтрЗаменить(
|
||||
ТекстМодуля,
|
||||
" Возврат ИсполняемыеСценарии;",
|
||||
СтрШаблон(
|
||||
"%1
|
||||
| Возврат ИсполняемыеСценарии;", СтрСоединить(ДанныеТеста.ИсполняемыеСценарии, Символы.ПС)));
|
||||
|
||||
ТекстМодуля = СтрЗаменить(
|
||||
ТекстМодуля,
|
||||
"#Область Тесты
|
||||
|",
|
||||
СтрШаблон(
|
||||
"#Область Тесты
|
||||
|
|
||||
|%1
|
||||
|",
|
||||
СтрСоединить(ДанныеТеста.ТестовыеМетоды, Символы.ПС + Символы.ПС)));
|
||||
|
||||
ФайловыеОперации.ЗаписатьТекстФайла(ПутьФайлаМодуляТеста, ТекстМодуля);
|
||||
ИзмененныеФайлы.Добавить(ПутьФайлаМодуляТеста);
|
||||
Лог.Информация("Обновлен модуль тестов '%1'", ПутьФайлаМодуляТеста);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого ИмяФайла Из ИзмененныеФайлы Цикл
|
||||
ДополнительныеПараметры.ИзмененныеКаталоги.Добавить(ИмяФайла);
|
||||
ДополнительныеПараметры.ФайлыДляПостОбработки.Добавить(ИмяФайла);
|
||||
КонецЦикла;
|
||||
|
||||
Возврат Истина;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ШаблонОписанияТеста()
|
||||
|
||||
Возврат
|
||||
"<?xml version=""1.0"" encoding=""UTF-8""?>
|
||||
|<mdclass:CommonModule xmlns:mdclass=""http://g5.1c.ru/v8/dt/metadata/mdclass"" uuid=""%1"">
|
||||
| <name>%2</name>
|
||||
| <synonym>
|
||||
| <key>ru</key>
|
||||
| <value>%2</value>
|
||||
| </synonym>
|
||||
| <clientManagedApplication>%3</clientManagedApplication>
|
||||
| <server>%4</server>
|
||||
|</mdclass:CommonModule>";
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ШаблонТестовогоМодуля()
|
||||
|
||||
Возврат
|
||||
"/////////////////////////////////////////////////////////////////////////////////
|
||||
|// Экспортные процедуры-тесты
|
||||
|/////////////////////////////////////////////////////////////////////////////////
|
||||
|
|
||||
|#Область ТестыAPI
|
||||
|
|
||||
|// ИсполняемыеСценарии
|
||||
|// Сервисный метод для получения списка тестовых методов
|
||||
|// Параметры:
|
||||
|// ДополнительныеПараметры - Структура - Дополнительные параметры, используемые при формировании списка тестов
|
||||
|// Возвращаемое значение:
|
||||
|// Массив - Имена методов тестов
|
||||
|Функция ИсполняемыеСценарии(ДополнительныеПараметры = Неопределено) Экспорт
|
||||
|
|
||||
| ИсполняемыеСценарии = Новый Массив;
|
||||
|%1
|
||||
| Возврат ИсполняемыеСценарии;
|
||||
|
|
||||
|КонецФункции
|
||||
|
|
||||
|#КонецОбласти
|
||||
|
|
||||
|#Область Тесты
|
||||
|
|
||||
|%2
|
||||
|
|
||||
|#КонецОбласти
|
||||
|
|
||||
|/////////////////////////////////////////////////////////////////////////////////
|
||||
|// Процедуры и функции, составляющие внутреннюю реализацию модуля
|
||||
|/////////////////////////////////////////////////////////////////////////////////
|
||||
|
|
||||
|#Область СлужебныеПроцедурыИФункции
|
||||
|#КонецОбласти
|
||||
|";
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ШаблонМетодаТеста()
|
||||
|
||||
Возврат
|
||||
"// @unit-test:%1
|
||||
|Процедура %3(Фреймворк, ВыполнитьВТранзакцииСОтменой = Истина) Экспорт
|
||||
|
|
||||
|#Если Сервер Тогда
|
||||
| Если ВыполнитьВТранзакцииСОтменой Тогда
|
||||
|
|
||||
| TestsWrapper.ВыполнитьТестВТранзакции(
|
||||
| Метаданные.ОбщиеМодули.%2,
|
||||
| ""%3"",
|
||||
| Фреймворк);
|
||||
|
|
||||
| Возврат;
|
||||
|
|
||||
| КонецЕсли;
|
||||
|#КонецЕсли
|
||||
|
|
||||
| ВызватьИсключение ""Тест '%2.%3' не реализован"";
|
||||
|
|
||||
|КонецПроцедуры";
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция НовыйМетодыМодуляТестов(ПутьФайлаМодуляТеста, МетаИнформацияФайла, МетодыМодуляИсходников)
|
||||
|
||||
МетодыМодуляТестов = МетодыМодуля(
|
||||
ПутьФайлаМодуляТеста,
|
||||
"^\/\/\s*?\@unit-test\:.*?\n(?:Процедура|Procedure)\s+?([а-яА-ЯёЁ0-9_\w]+?)\s*?\([^\)]*?\)\s*?(?:Экспорт|Export)");
|
||||
Если МетодыМодуляТестов.Количество() = 0 Тогда
|
||||
ВызватьИсключение СтрШаблон(ЗаголовокЛога + ": нет экспортных методов в модуле '%1'", ПутьФайлаМодуляТеста);
|
||||
КонецЕсли;
|
||||
|
||||
НовыеМетоды = Новый Массив();
|
||||
Для каждого Метод Из МетодыМодуляИсходников Цикл
|
||||
|
||||
ТестовыйМетод = ?(МетаИнформацияФайла.Глобальный, "Глобальный", "") + Метод;
|
||||
Если МетодыМодуляТестов.Найти(ТестовыйМетод) = Неопределено Тогда
|
||||
|
||||
НовыеМетоды.Добавить(Метод);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат НовыеМетоды;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ТекстыТеста(Методы, МетаИнформацияФайла)
|
||||
|
||||
ТекстыТеста = Новый Структура();
|
||||
ТекстыТеста.Вставить("ИсполняемыеСценарии", Новый Массив());
|
||||
ТекстыТеста.Вставить("ТестовыеМетоды", Новый Массив());
|
||||
|
||||
Для каждого Метод Из Методы Цикл
|
||||
|
||||
ИмяМетода = ?(МетаИнформацияФайла.Глобальный, "Глобальный", "") + Метод;
|
||||
ТекстыТеста.ИсполняемыеСценарии.Добавить(СтрШаблон(" ИсполняемыеСценарии.Добавить(""%1"");", ИмяМетода));
|
||||
|
||||
ТекстыТеста.ТестовыеМетоды.Добавить(
|
||||
СтрШаблон(ШаблонМетодаТеста(),
|
||||
МетаИнформацияФайла.ТипМетаданных,
|
||||
МетаИнформацияФайла.ИмяТестовогоМодуля,
|
||||
ИмяМетода));
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат ТекстыТеста;
|
||||
|
||||
КонецФункции
|
@ -1,5 +1,5 @@
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
//
|
||||
// Служебный модуль с реализацией сценариев обработки файлов <ОбработкаЮнитТестов>
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
@ -22,7 +22,7 @@
|
||||
// Параметры:
|
||||
// АнализируемыйФайл - Файл - Файл из журнала git для анализа
|
||||
// КаталогИсходныхФайлов - Строка - Каталог расположения исходных файлов относительно каталог репозитория
|
||||
// ДополнительныеПараметры - Структура - Набор дополнительных параметров, которые можно использовать
|
||||
// ДополнительныеПараметры - Структура - Набор дополнительных параметров, которые можно использовать
|
||||
// * Лог - Объект - Текущий лог
|
||||
// * ИзмененныеКаталоги - Массив - Каталоги, которые необходимо добавить в индекс
|
||||
// * КаталогРепозитория - Строка - Адрес каталога репозитория
|
||||
@ -39,17 +39,17 @@
|
||||
НастройкиСценария = ДополнительныеПараметры.Настройки.Получить(ИмяСценария());
|
||||
|
||||
// анализ файла без изменения его содержимого
|
||||
Если АнализируемыйФайл.Существует() И ТипыФайлов.ЭтоФайлИсходников(АнализируемыйФайл)
|
||||
И СтрНайти(АнализируемыйФайл.ПолноеИмя, "/tests/") Тогда
|
||||
Если АнализируемыйФайл.Существует() И ТипыФайлов.ЭтоФайлИсходников(АнализируемыйФайл)
|
||||
И ТипыФайлов.ЭтоФайлЧастьТеста(АнализируемыйФайл) Тогда
|
||||
|
||||
Лог.Информация("Обработка файла '%1' по сценарию '%2'", АнализируемыйФайл.ПолноеИмя, ИмяСценария());
|
||||
|
||||
|
||||
Если ОбработкаФайла(АнализируемыйФайл) Тогда
|
||||
|
||||
ДополнительныеПараметры.ИзмененныеКаталоги.Добавить(АнализируемыйФайл.ПолноеИмя);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
Возврат Истина;
|
||||
|
||||
КонецЕсли;
|
||||
@ -59,7 +59,7 @@
|
||||
КонецФункции // ОбработатьФайл()
|
||||
|
||||
Функция ОбработкаФайла(Файл)
|
||||
|
||||
|
||||
РегулярноеВыражениеМетоды = Новый РегулярноеВыражение("\/\/\s*?\@unit-test\:.*?\nПроцедура\s+?(.+)\s*?\(.*\s*Экспорт");
|
||||
РегулярноеВыражениеМетоды.ИгнорироватьРегистр = Истина;
|
||||
РегулярноеВыражениеМетоды.Многострочный = Истина;
|
||||
@ -67,68 +67,72 @@
|
||||
РегулярноеВыражениеAPI = Новый РегулярноеВыражение("(#Область ТестыAPI\s*?[.\w\W]+?#КонецОбласти\s*?$)");
|
||||
РегулярноеВыражениеAPI.ИгнорироватьРегистр = Истина;
|
||||
РегулярноеВыражениеAPI.Многострочный = Истина;
|
||||
|
||||
ТекстовыйДокумент = Новый ТекстовыйДокумент;
|
||||
ТекстовыйДокумент.Прочитать(Файл.ПолноеИмя, КодировкаТекста.UTF8NoBOM);
|
||||
Текст = ТекстовыйДокумент.ПолучитьТекст();
|
||||
|
||||
ТекстовыйДокумент = Новый ТекстовыйДокумент;
|
||||
ТекстовыйДокумент.Прочитать(Файл.ПолноеИмя, КодировкаТекста.UTF8NoBOM);
|
||||
Текст = ТекстовыйДокумент.ПолучитьТекст();
|
||||
Если Не ЗначениеЗаполнено(Текст) Тогда
|
||||
|
||||
Возврат Ложь;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
Совпадения = РегулярноеВыражениеМетоды.НайтиСовпадения(Текст);
|
||||
ТекстМетода = "";
|
||||
Если Совпадения.Количество() Тогда
|
||||
Для Каждого Совпадение Из Совпадения Цикл
|
||||
ТекстМетода = ТекстМетода + Символы.ПС
|
||||
+ " ИсполняемыеСценарии.Добавить(""" + Совпадение.Группы[1].Значение + """);";
|
||||
ТекстМетода = ТекстМетода + Символы.ПС
|
||||
+ " ИсполняемыеСценарии.Добавить(""" + Совпадение.Группы[1].Значение + """);";
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ПустаяСтрока(ТекстМетода) Тогда
|
||||
|
||||
ТекстМетода = "#Область ТестыAPI
|
||||
|
|
||||
|// ИсполняемыеСценарии
|
||||
|// Сервисный метод для получения списка тестовых методов
|
||||
|// Параметры:
|
||||
|// ДополнительныеПараметры - Структура - Дополнительные параметры, используемые при формировании списка тестов
|
||||
|// Возвращаемое значение:
|
||||
|// Массив - Имена методов тестов
|
||||
|Функция ИсполняемыеСценарии(ДополнительныеПараметры = Неопределено) Экспорт
|
||||
|
|
||||
| ИсполняемыеСценарии = Новый Массив; " + ТекстМетода + "
|
||||
|
|
||||
| Возврат ИсполняемыеСценарии;
|
||||
|
|
||||
|КонецФункции
|
||||
|
|
||||
|#КонецОбласти";
|
||||
|
|
||||
|// ИсполняемыеСценарии
|
||||
|// Сервисный метод для получения списка тестовых методов
|
||||
|// Параметры:
|
||||
|// ДополнительныеПараметры - Структура - Дополнительные параметры, используемые при формировании списка тестов
|
||||
|// Возвращаемое значение:
|
||||
|// Массив - Имена методов тестов
|
||||
|Функция ИсполняемыеСценарии(ДополнительныеПараметры = Неопределено) Экспорт
|
||||
|
|
||||
| ИсполняемыеСценарии = Новый Массив; " + ТекстМетода + "
|
||||
|
|
||||
| Возврат ИсполняемыеСценарии;
|
||||
|
|
||||
|КонецФункции
|
||||
|
|
||||
|#КонецОбласти";
|
||||
|
||||
Совпадения = РегулярноеВыражениеAPI.НайтиСовпадения(Текст);
|
||||
НовыйТекстМодуля = Текст;
|
||||
Если Совпадения.Количество() Тогда
|
||||
|
||||
НовыйТекстМодуля = РегулярноеВыражениеAPI.Заменить(Текст, ТекстМетода);
|
||||
|
||||
Иначе
|
||||
|
||||
Поз = СтрНайти(Текст, "#Область Тесты");
|
||||
Если Поз > 0 Тогда
|
||||
НовыйТекстМодуля = Лев(Текст, Поз - 1) + ТекстМетода + Символы.ПС + Символы.ПС + Сред(Текст, Поз);
|
||||
Иначе
|
||||
НовыйТекстМодуля = ТекстМетода + Символы.ПС + Символы.ПС + Текст;
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Если НовыйТекстМодуля <> Текст Тогда
|
||||
|
||||
ТекстовыйДокумент.УстановитьТекст(НовыйТекстМодуля);
|
||||
ТекстовыйДокумент.Записать(Файл.ПолноеИмя, КодировкаТекста.UTF8NoBOM);
|
||||
Сообщить("Обновлен файл " + Файл.ПолноеИмя);
|
||||
|
||||
|
||||
Возврат Истина;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
Возврат Ложь;
|
||||
|
||||
КонецФункции
|
||||
|
||||
КонецФункции
|
||||
|
@ -1,5 +1,5 @@
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
//
|
||||
// Служебный модуль с реализацией сценариев обработки файлов <СинхронизацияОбъектовМетаданныхИФайлов>
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
@ -24,7 +24,7 @@
|
||||
// Параметры:
|
||||
// АнализируемыйФайл - Файл - Файл из журнала git для анализа
|
||||
// КаталогИсходныхФайлов - Строка - Каталог расположения исходных файлов относительно каталог репозитория
|
||||
// ДополнительныеПараметры - Структура - Набор дополнительных параметров, которые можно использовать
|
||||
// ДополнительныеПараметры - Структура - Набор дополнительных параметров, которые можно использовать
|
||||
// * Лог - Объект - Текущий лог
|
||||
// * ИзмененныеКаталоги - Массив - Каталоги, которые необходимо добавить в индекс
|
||||
// * КаталогРепозитория - Строка - Адрес каталога репозитория
|
||||
@ -68,8 +68,8 @@
|
||||
// Это те объекты, которые есть в описании конфигурации
|
||||
ОбъектыМетаданных = ПолучитьОбъектыМетаданных(ДочерниеЭлементы.Совпадения);
|
||||
|
||||
// Список базовых типов метаданных
|
||||
СписокКаталогов = СписокКаталоговТиповМетаданных();
|
||||
// Список базовых типов метаданных
|
||||
СписокКаталогов = МетаданныеКонфигурации.КаталогиТиповМетаданных();
|
||||
|
||||
КорневойПуть = Новый Файл(ИмяФайла).Путь;
|
||||
СписокДляУдаления = Новый Массив;
|
||||
@ -132,7 +132,8 @@
|
||||
// Ситуация редкая, проверим в самом конце на регистр
|
||||
Строки = НадоПропустить.НайтиСтроки(Новый Структура("НормализованноеИмя", Нормализовать(ФайлОбъектаТипа.ИмяБезРасширения)));
|
||||
Если Строки.Количество() Тогда
|
||||
ОшибкаСтр = СтрШаблон("Имя каталога %2 отличается от метаданного %1. Надо переименовать папку %3", Строки[0].Имя, ФайлОбъектаТипа.ИмяБезРасширения, ФайлОбъектаТипа.ПолноеИмя);
|
||||
ОшибкаСтр = СтрШаблон("Имя каталога %1 отличается от метаданного %2. Надо переименовать папку %3",
|
||||
ФайлОбъектаТипа.ИмяБезРасширения, Строки[0].Имя, ФайлОбъектаТипа.ПолноеИмя);
|
||||
ТекстОшибок.Добавить(ОшибкаСтр);
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
@ -146,7 +147,7 @@
|
||||
|
||||
ПеренестиМетаданныеВОшибку(ОбъектыМетаданных, ТекстОшибок);
|
||||
|
||||
// Разбор файлов для удаления в строку с ошибкой
|
||||
// Разбор файлов для удаления в строку с ошибкой
|
||||
Если СписокДляУдаления.Количество() Тогда
|
||||
|
||||
СтрокаОшибки = "Необходимо удалить файлы ";
|
||||
@ -176,59 +177,7 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция СписокКаталоговТиповМетаданных()
|
||||
|
||||
Список = Новый СписокЗначений();
|
||||
Список.Добавить("AccumulationRegisters", "AccumulationRegister");
|
||||
Список.Добавить("BusinessProcesses", "BusinessProcess");
|
||||
Список.Добавить("Catalogs", "Catalog");
|
||||
Список.Добавить("ChartsOfCalculationTypes", "ChartOfCalculationTypes");
|
||||
Список.Добавить("ChartsOfCharacteristicTypes", "ChartOfCharacteristicTypes");
|
||||
Список.Добавить("CalculationRegisters", "CalculationRegister");
|
||||
Список.Добавить("CommandGroups", "CommandGroup");
|
||||
Список.Добавить("CommonAttributes", "CommonAttribute");
|
||||
Список.Добавить("CommonCommands", "CommonCommand");
|
||||
Список.Добавить("CommonForms", "CommonForm");
|
||||
Список.Добавить("CommonModules", "CommonModule");
|
||||
Список.Добавить("CommonPictures", "CommonPicture");
|
||||
Список.Добавить("CommonTemplates", "CommonTemplate");
|
||||
Список.Добавить("Constants", "Constant");
|
||||
Список.Добавить("DataProcessors", "DataProcessor");
|
||||
Список.Добавить("DefinedTypes", "DefinedType");
|
||||
Список.Добавить("DocumentJournals", "DocumentJournal");
|
||||
Список.Добавить("DocumentNumerators", "DocumentNumerator");
|
||||
Список.Добавить("Documents", "Document");
|
||||
Список.Добавить("Enums", "Enum");
|
||||
Список.Добавить("EventSubscriptions", "EventSubscription");
|
||||
Список.Добавить("ExchangePlans", "ExchangePlan");
|
||||
Список.Добавить("FilterCriteria", "FilterCriterion");
|
||||
Список.Добавить("FunctionalOptions", "FunctionalOption");
|
||||
Список.Добавить("FunctionalOptionsParameters", "FunctionalOptionsParameter");
|
||||
Список.Добавить("HTTPServices", "HTTPService");
|
||||
Список.Добавить("InformationRegisters", "InformationRegister");
|
||||
Список.Добавить("Languages", "Language");
|
||||
Список.Добавить("Reports", "Report");
|
||||
Список.Добавить("Roles", "Role");
|
||||
Список.Добавить("ScheduledJobs", "ScheduledJob");
|
||||
Список.Добавить("SessionParameters", "SessionParameter");
|
||||
Список.Добавить("SettingsStorages", "SettingsStorage");
|
||||
Список.Добавить("StyleItems", "StyleItem");
|
||||
Список.Добавить("Sequences", "Sequence");
|
||||
Список.Добавить("Styles", "Style");
|
||||
Список.Добавить("Subsystems", "Subsystem");
|
||||
Список.Добавить("Tasks", "Task");
|
||||
Список.Добавить("WebServices", "WebService");
|
||||
Список.Добавить("WSReferences", "WSReference");
|
||||
Список.Добавить("XDTOPackages", "XDTOPackage");
|
||||
Список.Добавить("ExternalDataSources", "ExternalDataSource");
|
||||
Список.Добавить("ChartsOfAccounts", "ChartOfAccounts");
|
||||
Список.Добавить("AccountingRegisters", "AccountingRegister");
|
||||
Список.Добавить("Bots", "Bot");
|
||||
Возврат Список;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// В данном случае для нормализации используются символы с которых не может начинаться имя метаданного в 1С для того,
|
||||
// В данном случае для нормализации используются символы с которых не может начинаться имя метаданного в 1С для того,
|
||||
// чтобы не вызвать пересечение при приведении к регистру
|
||||
Функция Нормализовать(ИмяМетаданного)
|
||||
Возврат ВРег("%" + ИмяМетаданного);
|
||||
@ -236,7 +185,6 @@
|
||||
|
||||
Функция ПолучитьОбъектыМетаданных(КоллекцияСовпадений)
|
||||
|
||||
|
||||
ОбъектыМетаданных = Новый ТаблицаЗначений;
|
||||
ОбъектыМетаданных.Колонки.Добавить("ТипМетаданных");
|
||||
ОбъектыМетаданных.Колонки.Добавить("ИмяМетаданных");
|
||||
@ -269,6 +217,7 @@
|
||||
|
||||
// каталога нет, а должен быть
|
||||
ТекстОшибок.Добавить(СтрШаблон("Отсутствует каталог %1", КаталогСписка.Значение));
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ОстановитьПроверкуКаталога = Истина;
|
||||
|
@ -5,21 +5,21 @@
|
||||
Функция ПрогнатьТесты()
|
||||
|
||||
Тестер = Новый Тестер;
|
||||
|
||||
|
||||
ПутьКТестам = ОбъединитьПути(ТекущийСценарий().Каталог, "..", "tests");
|
||||
ПутьКОтчетуJUnit = ОбъединитьПути(ТекущийСценарий().Каталог, "..");
|
||||
|
||||
|
||||
КаталогТестов = Новый Файл(ПутьКТестам);
|
||||
Если Не КаталогТестов.Существует() Тогда
|
||||
Сообщить(СтрШаблон("Не найден каталог тестов %1", ПутьКТестам));
|
||||
Возврат Истина;
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
РезультатТестирования = Тестер.ТестироватьКаталог(
|
||||
КаталогТестов,
|
||||
Новый Файл(ПутьКОтчетуJUnit)
|
||||
);
|
||||
|
||||
КаталогТестов,
|
||||
Новый Файл(ПутьКОтчетуJUnit)
|
||||
);
|
||||
|
||||
Успешно = РезультатТестирования = 0;
|
||||
|
||||
Возврат Успешно;
|
||||
@ -28,42 +28,41 @@
|
||||
Функция ПрогнатьФичи()
|
||||
|
||||
ПутьОтчетаJUnit = "./bdd-log.xml";
|
||||
|
||||
|
||||
КаталогФич = ОбъединитьПути(".", "features");
|
||||
|
||||
|
||||
Файл_КаталогФич = Новый Файл(КаталогФич);
|
||||
Если Не Файл_КаталогФич.Существует() Тогда
|
||||
Сообщить(СтрШаблон("Не найден каталог фич %1", КаталогФич));
|
||||
Возврат Истина;
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
ИсполнительБДД = Новый ИсполнительБДД;
|
||||
РезультатыВыполнения = ИсполнительБДД.ВыполнитьФичу(Файл_КаталогФич, Файл_КаталогФич);
|
||||
ИтоговыйРезультатВыполнения = ИсполнительБДД.ПолучитьИтоговыйСтатусВыполнения(РезультатыВыполнения);
|
||||
|
||||
|
||||
СтатусВыполнения = ИсполнительБДД.ВозможныеСтатусыВыполнения().НеВыполнялся;
|
||||
Если РезультатыВыполнения.Строки.Количество() > 0 Тогда
|
||||
|
||||
СтатусВыполнения = ИсполнительБДД.ПолучитьИтоговыйСтатусВыполнения(РезультатыВыполнения);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
ГенераторОтчетаJUnit = Новый ГенераторОтчетаJUnit;
|
||||
ГенераторОтчетаJUnit.Сформировать(РезультатыВыполнения, СтатусВыполнения, ПутьОтчетаJUnit);
|
||||
|
||||
|
||||
Сообщить(СтрШаблон("Результат прогона фич <%1>
|
||||
|", ИтоговыйРезультатВыполнения));
|
||||
|
||||
|", ИтоговыйРезультатВыполнения));
|
||||
|
||||
Возврат ИтоговыйРезультатВыполнения <> ИсполнительБДД.ВозможныеСтатусыВыполнения().Сломался;
|
||||
КонецФункции // ПрогнатьФичи()
|
||||
|
||||
Попытка
|
||||
ТестыПрошли = ПрогнатьТесты();
|
||||
|
||||
Исключение
|
||||
ТестыПрошли = Ложь;
|
||||
Сообщить(СтрШаблон("Тесты через 1testrunner выполнены неудачно
|
||||
|%1", ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())));
|
||||
|%1", ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())));
|
||||
КонецПопытки;
|
||||
|
||||
Попытка
|
||||
@ -71,12 +70,12 @@
|
||||
Исключение
|
||||
ФичиПрошли = Ложь;
|
||||
Сообщить(СтрШаблон("Тесты поведения через 1bdd выполнены неудачно
|
||||
|%1", ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())));
|
||||
|%1", ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())));
|
||||
КонецПопытки;
|
||||
|
||||
Если Не ТестыПрошли Или Не ФичиПрошли Тогда
|
||||
ВызватьИсключение "Тестирование завершилось неудачно!";
|
||||
Иначе
|
||||
Сообщить(СтрШаблон("Результат прогона тестов <%1>
|
||||
|", ТестыПрошли));
|
||||
|", ТестыПрошли));
|
||||
КонецЕсли;
|
||||
|
@ -1,16 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ConfigDumpInfo xmlns="http://v8.1c.ru/8.3/xcf/dumpinfo" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" format="Hierarchical" version="2.4">
|
||||
<ConfigVersions>
|
||||
<Metadata name="BusinessProcess.БизнесПроцесс1" id="eee45611-49ab-4d28-9173-a42ad7d8f97a" configVersion="33cb951400fa2f438a9c33030f7d4d9f00000000"/>
|
||||
<Metadata name="BusinessProcess.БизнесПроцесс1.Form.ФормаБизнесПроцесса" id="1af1ae03-f52b-4650-986d-bc63aa0c9926" configVersion="fcdc411fefc1c04893c18f9d0d3b48ae00000000"/>
|
||||
<Metadata name="BusinessProcess.БизнесПроцесс1.Form.ФормаБизнесПроцесса.Form" id="1af1ae03-f52b-4650-986d-bc63aa0c9926.0" configVersion="3202cd0e24679a46baf5fb00c2a0efb300000000"/>
|
||||
<Metadata name="BusinessProcess.БизнесПроцесс1.Form.ФормаСписка" id="0dbad928-1ecb-478f-831b-d310cfab3ca8" configVersion="d04da7f7a6b6c841be8dd2939d57737200000000"/>
|
||||
<Metadata name="BusinessProcess.БизнесПроцесс1.Form.ФормаСписка.Form" id="0dbad928-1ecb-478f-831b-d310cfab3ca8.0" configVersion="d629367128615241823ef7c7c45af07000000000"/>
|
||||
<Metadata name="Catalog.Справочник1" id="60ae4ab9-a09f-420a-8f0e-fe632bb8898f" configVersion="9caa23001cbf0a4695a169b4f21c0c1000000000"/>
|
||||
<Metadata name="Catalog.Справочник1.Form.ФормаЭлемента" id="f03d55a5-c016-4d07-bbae-d371cfb729f0" configVersion="d3cea967ed290f4e8c0c079743d44c1700000000"/>
|
||||
<Metadata name="Catalog.Справочник1.Form.ФормаЭлемента.Form" id="f03d55a5-c016-4d07-bbae-d371cfb729f0.0" configVersion="512fd351277c9b4a96cff0e3a666336b00000000"/>
|
||||
<Metadata name="Configuration.Конфигурация" id="b4bb993c-0276-4fc3-bc8f-e6a83c495c2d" configVersion="a10ff840f5f4ee4eb197bf663e8e857c00000000"/>
|
||||
<Metadata name="Language.Русский" id="11decc79-5e16-4e21-807b-3de57f51ba5b" configVersion="4ba8c3bff189a8438a8ad74fbe34e6e500000000"/>
|
||||
<Metadata name="Task.Задача1" id="1d1bd021-ed61-4677-9430-c4ffce40dc5b" configVersion="7e1e44fcdab78745a1e554a6c0c11c1300000000"/>
|
||||
</ConfigVersions>
|
||||
</ConfigDumpInfo>
|
18
tests/fixtures/cf-edt/configuration/.project
vendored
Normal file
18
tests/fixtures/cf-edt/configuration/.project
vendored
Normal file
@ -0,0 +1,18 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>pc_test_conf</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
|
||||
<nature>com._1c.g5.v8.dt.core.V8ConfigurationNature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
2
tests/fixtures/cf-edt/configuration/.settings/org.eclipse.core.resources.prefs
vendored
Normal file
2
tests/fixtures/cf-edt/configuration/.settings/org.eclipse.core.resources.prefs
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
eclipse.preferences.version=1
|
||||
encoding/<project>=UTF-8
|
2
tests/fixtures/cf-edt/configuration/DT-INF/PROJECT.PMF
vendored
Normal file
2
tests/fixtures/cf-edt/configuration/DT-INF/PROJECT.PMF
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
Manifest-Version: 1.0
|
||||
Runtime-Version: 8.3.10
|
@ -0,0 +1,3 @@
|
||||
Процедура ПроцедураЭкспортнаяБезПараметров() Экспорт
|
||||
Возврат;
|
||||
КонецПроцедуры
|
@ -0,0 +1,3 @@
|
||||
Процедура ПроцедураЭкспортнаяБезПараметров() Экспорт
|
||||
Возврат;
|
||||
КонецПроцедуры
|
@ -0,0 +1,55 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:AccountingRegister xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="de9dd4a0-f125-434f-8ae5-65fae3d3fcc5">
|
||||
<producedTypes>
|
||||
<selectionType typeId="6a18e8b8-2590-4360-91fe-bac761e17174" valueTypeId="185705e9-2245-4bc6-be51-a225c3bf6077"/>
|
||||
<listType typeId="6c064f1e-6c7e-47c4-9194-ce1970529314" valueTypeId="2168be2a-e762-438c-bde1-fd6b721b42cc"/>
|
||||
<managerType typeId="2f19f72f-996c-455b-be40-dba8e3c6ce4a" valueTypeId="07d0bd3c-4fdf-4789-80c1-a0076f3e341c"/>
|
||||
<recordSetType typeId="f2aed945-8a80-475e-8804-c9827bf9f74f" valueTypeId="2fe955f2-5b56-41a2-8ce3-2fd3941a78bb"/>
|
||||
<recordKeyType typeId="bd9fbe9b-5d1a-40d5-b398-10368499c35a" valueTypeId="2dc2db79-4f35-495c-a495-eaef4dd8b13d"/>
|
||||
<recordType typeId="ae9f817a-2a3d-47b3-8cfd-e123e54725f4" valueTypeId="90809172-87d3-40ca-8c12-a0f29ba0c484"/>
|
||||
<extDimensionsType typeId="1d590454-783c-49f4-b27c-40c37da74821" valueTypeId="d96cd78e-3987-43c2-bb21-f56b9b04e521"/>
|
||||
</producedTypes>
|
||||
<name>РегистрБухгалтерии1</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Регистр бухгалтерии1</value>
|
||||
</synonym>
|
||||
<useStandardCommands>true</useStandardCommands>
|
||||
<chartOfAccounts>ChartOfAccounts.ПланСчетов1</chartOfAccounts>
|
||||
<dataLockControlMode>Managed</dataLockControlMode>
|
||||
<enableTotalsSplitting>true</enableTotalsSplitting>
|
||||
<dimensions uuid="51c20b93-b53a-46b8-9d9d-6e2204a278ce">
|
||||
<name>Измерение1</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Измерение1</value>
|
||||
</synonym>
|
||||
<type>
|
||||
<types>String</types>
|
||||
<stringQualifiers>
|
||||
<length>10</length>
|
||||
</stringQualifiers>
|
||||
</type>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<balance>true</balance>
|
||||
</dimensions>
|
||||
<resources uuid="646d04ae-878d-4883-b207-059288b033f0">
|
||||
<name>Ресурс1</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Ресурс1</value>
|
||||
</synonym>
|
||||
<type>
|
||||
<types>Number</types>
|
||||
<numberQualifiers>
|
||||
<precision>10</precision>
|
||||
</numberQualifiers>
|
||||
</type>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<balance>true</balance>
|
||||
</resources>
|
||||
</mdclass:AccountingRegister>
|
@ -0,0 +1,3 @@
|
||||
Процедура ПроцедураЭкспортнаяБезПараметров() Экспорт
|
||||
Возврат;
|
||||
КонецПроцедуры
|
@ -0,0 +1,3 @@
|
||||
Процедура ПроцедураЭкспортнаяБезПараметров() Экспорт
|
||||
Возврат;
|
||||
КонецПроцедуры
|
@ -0,0 +1,52 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:AccumulationRegister xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="21cc8419-47fe-4f5e-a33d-5a6014a64cba">
|
||||
<producedTypes>
|
||||
<selectionType typeId="b279039c-1ec6-420e-9fd7-1e484d0f2507" valueTypeId="fecf54e4-19fb-40ea-af80-9e9d086db145"/>
|
||||
<listType typeId="80ae834b-d9ea-4e74-8e14-b2f1721ab124" valueTypeId="febcb43a-e101-472c-8cca-4afd7601cd12"/>
|
||||
<managerType typeId="0bf00b0c-cbd0-45d6-9094-5910888f2f2d" valueTypeId="53f67b43-81e1-412e-9639-0ae59b3fc268"/>
|
||||
<recordSetType typeId="a156ac99-b3be-474d-a764-963063e2d8fb" valueTypeId="b8327a0d-94f3-470a-874d-8dc0179b8182"/>
|
||||
<recordKeyType typeId="93e79b72-393d-424c-9e6e-4827f95a35f2" valueTypeId="08cf3881-7e83-4726-a36b-ee6b069bb703"/>
|
||||
<recordType typeId="4a2db4d6-ed69-4148-a48d-de6aa08cef8f" valueTypeId="c89df3a1-f503-47b4-b1db-2679bce35af4"/>
|
||||
</producedTypes>
|
||||
<name>РегистрНакопления1</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Регистр накопления1</value>
|
||||
</synonym>
|
||||
<useStandardCommands>true</useStandardCommands>
|
||||
<dataLockControlMode>Managed</dataLockControlMode>
|
||||
<enableTotalsSplitting>true</enableTotalsSplitting>
|
||||
<resources uuid="3e1cb421-7cc2-4504-a36a-fd186b33c79c">
|
||||
<name>Ресурс1</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Ресурс1</value>
|
||||
</synonym>
|
||||
<type>
|
||||
<types>Number</types>
|
||||
<numberQualifiers>
|
||||
<precision>10</precision>
|
||||
</numberQualifiers>
|
||||
</type>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
</resources>
|
||||
<dimensions uuid="b053736d-515c-41ca-ba1e-e2edd9f79c5b">
|
||||
<name>Измерение1</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Измерение1</value>
|
||||
</synonym>
|
||||
<type>
|
||||
<types>String</types>
|
||||
<stringQualifiers>
|
||||
<length>10</length>
|
||||
</stringQualifiers>
|
||||
</type>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<useInTotals>true</useInTotals>
|
||||
</dimensions>
|
||||
</mdclass:AccumulationRegister>
|
3
tests/fixtures/cf-edt/configuration/src/BusinessProcesses/БизнесПроцесс1/ManagerModule.bsl
vendored
Normal file
3
tests/fixtures/cf-edt/configuration/src/BusinessProcesses/БизнесПроцесс1/ManagerModule.bsl
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
Процедура ПроцедураЭкспортнаяБезПараметров() Экспорт
|
||||
Возврат;
|
||||
КонецПроцедуры
|
3
tests/fixtures/cf-edt/configuration/src/BusinessProcesses/БизнесПроцесс1/ObjectModule.bsl
vendored
Normal file
3
tests/fixtures/cf-edt/configuration/src/BusinessProcesses/БизнесПроцесс1/ObjectModule.bsl
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
Процедура ПроцедураЭкспортнаяБезПараметров() Экспорт
|
||||
Возврат;
|
||||
КонецПроцедуры
|
29
tests/fixtures/cf-edt/configuration/src/BusinessProcesses/БизнесПроцесс1/БизнесПроцесс1.mdo
vendored
Normal file
29
tests/fixtures/cf-edt/configuration/src/BusinessProcesses/БизнесПроцесс1/БизнесПроцесс1.mdo
vendored
Normal file
@ -0,0 +1,29 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:BusinessProcess xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="1d79a6ca-ec87-4b76-afdc-204f3301273c">
|
||||
<producedTypes>
|
||||
<objectType typeId="78b123df-ae08-4465-8c72-ef34411fd8a8" valueTypeId="b83a3cde-10da-452f-b7f1-d82fd2c6977a"/>
|
||||
<refType typeId="7e162673-0ac1-42f2-944b-a2d3251b5ee7" valueTypeId="460ab3bc-c81f-497c-8b81-098e47919959"/>
|
||||
<selectionType typeId="018aaa02-f2b8-4f7a-8d03-3ddda4159915" valueTypeId="28f57b79-fe1e-4f6c-af36-9587f70c3c88"/>
|
||||
<listType typeId="a47296c7-9ffc-4fa6-b8a5-a405ac03fbc0" valueTypeId="b76f6bd3-1de4-42da-8d8a-20f811245b62"/>
|
||||
<managerType typeId="9163bfc2-2323-4517-8095-6c32bca3c362" valueTypeId="ce156500-4e44-47d0-91ad-ee424e4dac37"/>
|
||||
<routePointRef typeId="aa095897-1fb6-4c46-8650-261064fea2b9" valueTypeId="768b142e-4a38-41a9-85da-05ea9ae32096"/>
|
||||
</producedTypes>
|
||||
<name>БизнесПроцесс1</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Бизнес процесс1</value>
|
||||
</synonym>
|
||||
<useStandardCommands>true</useStandardCommands>
|
||||
<inputByString>BusinessProcess.БизнесПроцесс1.StandardAttribute.Number</inputByString>
|
||||
<fullTextSearchOnInputByString>DontUse</fullTextSearchOnInputByString>
|
||||
<createOnInput>DontUse</createOnInput>
|
||||
<dataLockControlMode>Managed</dataLockControlMode>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<editType>InDialog</editType>
|
||||
<numberType>String</numberType>
|
||||
<numberLength>9</numberLength>
|
||||
<numberAllowedLength>Variable</numberAllowedLength>
|
||||
<checkUnique>true</checkUnique>
|
||||
<autonumbering>true</autonumbering>
|
||||
<createTaskInPrivilegedMode>true</createTaskInPrivilegedMode>
|
||||
</mdclass:BusinessProcess>
|
@ -0,0 +1,3 @@
|
||||
Процедура ПроцедураЭкспортнаяБезПараметров() Экспорт
|
||||
Возврат;
|
||||
КонецПроцедуры
|
@ -0,0 +1,3 @@
|
||||
Процедура ПроцедураЭкспортнаяБезПараметров() Экспорт
|
||||
Возврат;
|
||||
КонецПроцедуры
|
53
tests/fixtures/cf-edt/configuration/src/CalculationRegisters/РегистрРасчета1/РегистрРасчета1.mdo
vendored
Normal file
53
tests/fixtures/cf-edt/configuration/src/CalculationRegisters/РегистрРасчета1/РегистрРасчета1.mdo
vendored
Normal file
@ -0,0 +1,53 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:CalculationRegister xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="1852094c-1036-4005-b9fe-6b1f983b5943">
|
||||
<producedTypes>
|
||||
<selectionType typeId="8b9ec309-9683-462c-9d24-6be0fd29684e" valueTypeId="40feb075-0c61-4c22-ab12-0c9fd9d1f7fa"/>
|
||||
<listType typeId="f1890515-b178-43bb-8d47-265fedba5b12" valueTypeId="b19a0fd7-2f62-46ce-a8f1-8824f7e92e85"/>
|
||||
<managerType typeId="a9eef7bd-bd5f-4e46-b977-64686c25e42d" valueTypeId="ff409435-a819-4501-a750-9490143c2a20"/>
|
||||
<recordSetType typeId="374cb276-e87d-4eb4-b379-2cf6f5d798af" valueTypeId="fec3ccba-0d98-48b9-9a86-fe2fedbfeff9"/>
|
||||
<recordKeyType typeId="e5b28f91-6ffb-4b61-952d-fdb2e7751dba" valueTypeId="2d1d9bea-ea76-4def-ad9c-b585f628917c"/>
|
||||
<recordType typeId="fa02720c-2377-497b-b204-cdc0df945cc3" valueTypeId="9f659707-8305-4538-a1a6-e719d7a9f29d"/>
|
||||
<recalcsType typeId="441e31b8-4edc-48b0-92d7-36ceca15eba5" valueTypeId="eb339a5a-402a-4f40-bcc5-d2bb1fe1c92b"/>
|
||||
</producedTypes>
|
||||
<name>РегистрРасчета1</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Регистр расчета1</value>
|
||||
</synonym>
|
||||
<useStandardCommands>true</useStandardCommands>
|
||||
<periodicity>Month</periodicity>
|
||||
<chartOfCalculationTypes>ChartOfCalculationTypes.ПланВидовРасчета1</chartOfCalculationTypes>
|
||||
<dataLockControlMode>Managed</dataLockControlMode>
|
||||
<resources uuid="eab52d81-1dd7-4256-aeb0-d7e951667199">
|
||||
<name>Ресурс1</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Ресурс1</value>
|
||||
</synonym>
|
||||
<type>
|
||||
<types>Number</types>
|
||||
<numberQualifiers>
|
||||
<precision>10</precision>
|
||||
</numberQualifiers>
|
||||
</type>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
</resources>
|
||||
<dimensions uuid="ebd0edc6-a53b-462b-af7f-06f2b5eca2ac">
|
||||
<name>Измерение1</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Измерение1</value>
|
||||
</synonym>
|
||||
<type>
|
||||
<types>String</types>
|
||||
<stringQualifiers>
|
||||
<length>10</length>
|
||||
</stringQualifiers>
|
||||
</type>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
</dimensions>
|
||||
</mdclass:CalculationRegister>
|
3
tests/fixtures/cf-edt/configuration/src/Catalogs/Справочник1/ManagerModule.bsl
vendored
Normal file
3
tests/fixtures/cf-edt/configuration/src/Catalogs/Справочник1/ManagerModule.bsl
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
Процедура ПроцедураЭкспортнаяБезПараметров() Экспорт
|
||||
Возврат;
|
||||
КонецПроцедуры
|
3
tests/fixtures/cf-edt/configuration/src/Catalogs/Справочник1/ObjectModule.bsl
vendored
Normal file
3
tests/fixtures/cf-edt/configuration/src/Catalogs/Справочник1/ObjectModule.bsl
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
Процедура ПроцедураЭкспортнаяБезПараметров() Экспорт
|
||||
Возврат;
|
||||
КонецПроцедуры
|
33
tests/fixtures/cf-edt/configuration/src/Catalogs/Справочник1/Справочник1.mdo
vendored
Normal file
33
tests/fixtures/cf-edt/configuration/src/Catalogs/Справочник1/Справочник1.mdo
vendored
Normal file
@ -0,0 +1,33 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:Catalog xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="2aab34ab-5b42-4b64-855c-efe39405d625">
|
||||
<producedTypes>
|
||||
<objectType typeId="ae994dbc-1dc7-4405-8567-fac28199c137" valueTypeId="f59726a7-4c2b-4af8-b308-4f09a3fdc26e"/>
|
||||
<refType typeId="3dce89e8-a416-4e26-a700-c98503a304c4" valueTypeId="4343c293-40ce-4890-b072-39bf9eb5e6e9"/>
|
||||
<selectionType typeId="320de1c9-4ff5-4a18-8f7e-e1bcebed7dcc" valueTypeId="bbab11fe-f5d1-48ef-bae7-139e36288a50"/>
|
||||
<listType typeId="adf715c2-b41e-4dc1-b65d-573eba53aee7" valueTypeId="ead6bddc-1791-47c5-b433-73e25dd62a5f"/>
|
||||
<managerType typeId="e998eebc-0bf7-43a1-ba7e-45a84eda2013" valueTypeId="722edafb-20af-4579-804b-bc452e5eff77"/>
|
||||
</producedTypes>
|
||||
<name>Справочник1</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Справочник1</value>
|
||||
</synonym>
|
||||
<useStandardCommands>true</useStandardCommands>
|
||||
<inputByString>Catalog.Справочник1.StandardAttribute.Code</inputByString>
|
||||
<inputByString>Catalog.Справочник1.StandardAttribute.Description</inputByString>
|
||||
<fullTextSearchOnInputByString>DontUse</fullTextSearchOnInputByString>
|
||||
<createOnInput>Use</createOnInput>
|
||||
<dataLockControlMode>Managed</dataLockControlMode>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<levelCount>2</levelCount>
|
||||
<foldersOnTop>true</foldersOnTop>
|
||||
<codeLength>9</codeLength>
|
||||
<descriptionLength>25</descriptionLength>
|
||||
<codeType>String</codeType>
|
||||
<codeAllowedLength>Variable</codeAllowedLength>
|
||||
<checkUnique>true</checkUnique>
|
||||
<autonumbering>true</autonumbering>
|
||||
<defaultPresentation>AsDescription</defaultPresentation>
|
||||
<editType>InDialog</editType>
|
||||
<choiceMode>BothWays</choiceMode>
|
||||
</mdclass:Catalog>
|
3
tests/fixtures/cf-edt/configuration/src/ChartsOfAccounts/ПланСчетов1/ManagerModule.bsl
vendored
Normal file
3
tests/fixtures/cf-edt/configuration/src/ChartsOfAccounts/ПланСчетов1/ManagerModule.bsl
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
Процедура ПроцедураЭкспортнаяБезПараметров() Экспорт
|
||||
Возврат;
|
||||
КонецПроцедуры
|
3
tests/fixtures/cf-edt/configuration/src/ChartsOfAccounts/ПланСчетов1/ObjectModule.bsl
vendored
Normal file
3
tests/fixtures/cf-edt/configuration/src/ChartsOfAccounts/ПланСчетов1/ObjectModule.bsl
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
Процедура ПроцедураЭкспортнаяБезПараметров() Экспорт
|
||||
Возврат;
|
||||
КонецПроцедуры
|
29
tests/fixtures/cf-edt/configuration/src/ChartsOfAccounts/ПланСчетов1/ПланСчетов1.mdo
vendored
Normal file
29
tests/fixtures/cf-edt/configuration/src/ChartsOfAccounts/ПланСчетов1/ПланСчетов1.mdo
vendored
Normal file
@ -0,0 +1,29 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:ChartOfAccounts xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="cddef5bf-b11a-4a4d-8357-5f24fb201d4b">
|
||||
<producedTypes>
|
||||
<objectType typeId="fad36b46-bbb2-4d53-a586-4d3f6f975071" valueTypeId="fe2e4432-2de0-40a1-83e3-9eb0989177b8"/>
|
||||
<refType typeId="f266e72d-f5ed-48b8-8839-051efd9ceca4" valueTypeId="611c8c8d-649b-4d37-98cd-334ee0dcaf3f"/>
|
||||
<selectionType typeId="e79356c1-c736-480d-b379-dec8eb9b61e5" valueTypeId="91476a1e-f4de-4ad4-94db-48ce63572037"/>
|
||||
<listType typeId="a751221c-bbbe-41b7-8d8a-d9192c352e13" valueTypeId="6afb2ecc-7b5e-45a3-b68c-08aef2e6a2d0"/>
|
||||
<managerType typeId="d0e4baf4-3a48-4950-b084-5bad775fbb81" valueTypeId="080bbd6e-bb13-47d4-83d4-f1db7a0f0d15"/>
|
||||
<extDimensionTypes typeId="d3731e23-a38c-42ed-805c-8389761fb4d7" valueTypeId="eac3fd84-cbad-4de4-84f0-c483f999a24e"/>
|
||||
<extDimensionTypesRow typeId="a431e915-1ce4-4c18-bf66-ba40e943179e" valueTypeId="f63f9d1f-14d4-450f-9508-fa3a2e782981"/>
|
||||
</producedTypes>
|
||||
<name>ПланСчетов1</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>План счетов1</value>
|
||||
</synonym>
|
||||
<useStandardCommands>true</useStandardCommands>
|
||||
<inputByString>ChartOfAccounts.ПланСчетов1.StandardAttribute.Code</inputByString>
|
||||
<inputByString>ChartOfAccounts.ПланСчетов1.StandardAttribute.Description</inputByString>
|
||||
<fullTextSearchOnInputByString>DontUse</fullTextSearchOnInputByString>
|
||||
<createOnInput>DontUse</createOnInput>
|
||||
<dataLockControlMode>Managed</dataLockControlMode>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<codeLength>9</codeLength>
|
||||
<descriptionLength>25</descriptionLength>
|
||||
<checkUnique>true</checkUnique>
|
||||
<editType>InDialog</editType>
|
||||
<choiceMode>BothWays</choiceMode>
|
||||
</mdclass:ChartOfAccounts>
|
@ -0,0 +1,3 @@
|
||||
Процедура ПроцедураЭкспортнаяБезПараметров() Экспорт
|
||||
Возврат;
|
||||
КонецПроцедуры
|
@ -0,0 +1,3 @@
|
||||
Процедура ПроцедураЭкспортнаяБезПараметров() Экспорт
|
||||
Возврат;
|
||||
КонецПроцедуры
|
@ -0,0 +1,35 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:ChartOfCalculationTypes xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="1c44e5e4-1ffb-47b8-9938-3125b2ce24ce">
|
||||
<producedTypes>
|
||||
<objectType typeId="f15b0c9a-2a3e-4cb0-b4d1-ac486b5859a2" valueTypeId="b34fe2a2-8fa4-4be8-9fa5-6934f4264897"/>
|
||||
<refType typeId="72091991-d120-4e1a-ab04-c96d93f231ae" valueTypeId="df48e71b-90a6-4897-ac7b-9308cbfc4f2c"/>
|
||||
<selectionType typeId="fea2be88-0b5f-48ac-a4b5-aae6bad009eb" valueTypeId="7cd06533-9a94-4b71-b9dd-f549d7605ea4"/>
|
||||
<listType typeId="28304ac4-932a-42a4-b511-009754cbc332" valueTypeId="fa716c8c-2169-46c0-9e17-d059356f5feb"/>
|
||||
<managerType typeId="e9b5a8dd-e76f-4108-836c-c01a1b6b1e38" valueTypeId="df5a6e0f-55dd-49d9-9eb3-aaf4bb6b33bc"/>
|
||||
<displacingCalculationTypesType typeId="77890963-5069-4769-b049-4ccf6681f668" valueTypeId="230c6df4-e31b-4348-8fce-d379f45f9e19"/>
|
||||
<displacingCalculationTypesRowType typeId="3922060f-c292-4c7e-8842-f1debd96a5ad" valueTypeId="3ec5d3ca-bffd-4111-90e9-9dbe84dbcafe"/>
|
||||
<baseCalculationTypesType typeId="340e12b1-a370-4752-9b9b-7086f6f738f4" valueTypeId="ed2bbdd0-b8f9-4c44-a7a1-92a59d623135"/>
|
||||
<baseCalculationTypesRowType typeId="b11d6bbb-2489-4f3e-abf2-d957b88cf0e5" valueTypeId="c0d58d76-244f-4c0f-8b98-2ae424e12746"/>
|
||||
<leadingCalculationTypesType typeId="96ea5d49-b3af-4db6-8fd0-3d9c5adc0e4a" valueTypeId="508fe1d1-c17c-4b00-bb44-cd43e206b20b"/>
|
||||
<leadingCalculationTypesRowType typeId="7df1bf1d-3a7e-4ed6-a21d-358b5bb5b948" valueTypeId="7968d7c2-f46b-48ea-a7fc-6fa68003e43a"/>
|
||||
</producedTypes>
|
||||
<name>ПланВидовРасчета1</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>План видов расчета1</value>
|
||||
</synonym>
|
||||
<useStandardCommands>true</useStandardCommands>
|
||||
<inputByString>ChartOfCalculationTypes.ПланВидовРасчета1.StandardAttribute.Code</inputByString>
|
||||
<inputByString>ChartOfCalculationTypes.ПланВидовРасчета1.StandardAttribute.Description</inputByString>
|
||||
<fullTextSearchOnInputByString>DontUse</fullTextSearchOnInputByString>
|
||||
<createOnInput>DontUse</createOnInput>
|
||||
<dataLockControlMode>Managed</dataLockControlMode>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<codeLength>9</codeLength>
|
||||
<descriptionLength>40</descriptionLength>
|
||||
<codeType>String</codeType>
|
||||
<codeAllowedLength>Variable</codeAllowedLength>
|
||||
<defaultPresentation>AsDescription</defaultPresentation>
|
||||
<editType>InDialog</editType>
|
||||
<choiceMode>BothWays</choiceMode>
|
||||
</mdclass:ChartOfCalculationTypes>
|
@ -0,0 +1,3 @@
|
||||
Процедура ПроцедураЭкспортнаяБезПараметров() Экспорт
|
||||
Возврат;
|
||||
КонецПроцедуры
|
@ -0,0 +1,3 @@
|
||||
Процедура ПроцедураЭкспортнаяБезПараметров() Экспорт
|
||||
Возврат;
|
||||
КонецПроцедуры
|
@ -0,0 +1,38 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:ChartOfCharacteristicTypes xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="be6ccc44-5c58-42b6-b717-38e51c37b9c3">
|
||||
<producedTypes>
|
||||
<objectType typeId="11121a5f-4e4b-4d53-a2a1-7bb5fa2b3e9d" valueTypeId="b84e720d-8333-48a3-9c74-7922845cc484"/>
|
||||
<refType typeId="fae32516-870d-4442-ab9c-25e7a2ddd7e5" valueTypeId="42d0ba17-b864-423c-8a74-70e84e1662cb"/>
|
||||
<selectionType typeId="aaeab3db-be47-4aca-b945-8d0f5d19af2e" valueTypeId="f3501eac-98c3-433f-9d31-baa02c0825d5"/>
|
||||
<listType typeId="b09a4a93-4d70-43fe-9b42-94123237f720" valueTypeId="65c9f7b7-6ff5-4210-a2b9-442e89902236"/>
|
||||
<managerType typeId="23d5ae7d-84a4-4c63-b6f0-9b9c446a84ea" valueTypeId="0a1d496d-9b98-4ed4-8d0c-2b54c581ca0b"/>
|
||||
<containerType typeId="fc3e8e5e-6f4e-4e75-90f3-0cd1bff110e5" valueTypeId="82ea8430-8a9c-48ff-8232-2e4168079bec"/>
|
||||
</producedTypes>
|
||||
<name>ПланВидовХарактеристик1</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>План видов характеристик1</value>
|
||||
</synonym>
|
||||
<useStandardCommands>true</useStandardCommands>
|
||||
<inputByString>ChartOfCharacteristicTypes.ПланВидовХарактеристик1.StandardAttribute.Code</inputByString>
|
||||
<inputByString>ChartOfCharacteristicTypes.ПланВидовХарактеристик1.StandardAttribute.Description</inputByString>
|
||||
<fullTextSearchOnInputByString>DontUse</fullTextSearchOnInputByString>
|
||||
<createOnInput>DontUse</createOnInput>
|
||||
<dataLockControlMode>Managed</dataLockControlMode>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<type>
|
||||
<types>String</types>
|
||||
<stringQualifiers>
|
||||
<length>10</length>
|
||||
</stringQualifiers>
|
||||
</type>
|
||||
<foldersOnTop>true</foldersOnTop>
|
||||
<codeLength>9</codeLength>
|
||||
<codeAllowedLength>Variable</codeAllowedLength>
|
||||
<descriptionLength>25</descriptionLength>
|
||||
<checkUnique>true</checkUnique>
|
||||
<autonumbering>true</autonumbering>
|
||||
<defaultPresentation>AsDescription</defaultPresentation>
|
||||
<editType>InDialog</editType>
|
||||
<choiceMode>BothWays</choiceMode>
|
||||
</mdclass:ChartOfCharacteristicTypes>
|
26
tests/fixtures/cf-edt/configuration/src/CommonForms/ОбщаяФорма1/Form.form
vendored
Normal file
26
tests/fixtures/cf-edt/configuration/src/CommonForms/ОбщаяФорма1/Form.form
vendored
Normal file
@ -0,0 +1,26 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<form:Form xmlns:form="http://g5.1c.ru/v8/dt/form">
|
||||
<autoCommandBar>
|
||||
<name>ФормаКоманднаяПанель</name>
|
||||
<id>-1</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
<autoFill>true</autoFill>
|
||||
</autoCommandBar>
|
||||
<autoTitle>true</autoTitle>
|
||||
<autoUrl>true</autoUrl>
|
||||
<group>Vertical</group>
|
||||
<autoFillCheck>true</autoFillCheck>
|
||||
<allowFormCustomize>true</allowFormCustomize>
|
||||
<enabled>true</enabled>
|
||||
<showTitle>true</showTitle>
|
||||
<showCloseButton>true</showCloseButton>
|
||||
<commandInterface>
|
||||
<navigationPanel/>
|
||||
<commandBar/>
|
||||
</commandInterface>
|
||||
</form:Form>
|
3
tests/fixtures/cf-edt/configuration/src/CommonForms/ОбщаяФорма1/Module.bsl
vendored
Normal file
3
tests/fixtures/cf-edt/configuration/src/CommonForms/ОбщаяФорма1/Module.bsl
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
Процедура ПроцедураЭкспортнаяБезПараметров() Экспорт
|
||||
Возврат;
|
||||
КонецПроцедуры
|
10
tests/fixtures/cf-edt/configuration/src/CommonForms/ОбщаяФорма1/ОбщаяФорма1.mdo
vendored
Normal file
10
tests/fixtures/cf-edt/configuration/src/CommonForms/ОбщаяФорма1/ОбщаяФорма1.mdo
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:CommonForm xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="8895e6a2-c133-438d-92c1-1b9ef817bedc">
|
||||
<name>ОбщаяФорма1</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Общая форма1</value>
|
||||
</synonym>
|
||||
<usePurposes>PersonalComputer</usePurposes>
|
||||
<usePurposes>MobileDevice</usePurposes>
|
||||
</mdclass:CommonForm>
|
3
tests/fixtures/cf-edt/configuration/src/CommonModules/ОбщийМодульБезЭкспортных/Module.bsl
vendored
Normal file
3
tests/fixtures/cf-edt/configuration/src/CommonModules/ОбщийМодульБезЭкспортных/Module.bsl
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
Процедура ПроцедураНеЭкспортнаяБезПараметров()
|
||||
Возврат;
|
||||
КонецПроцедуры
|
@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="91e73716-df1c-4309-9ff7-9233a14410ca">
|
||||
<name>ОбщийМодульБезЭкспортных</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Общий модуль без экспортных</value>
|
||||
</synonym>
|
||||
<server>true</server>
|
||||
</mdclass:CommonModule>
|
@ -0,0 +1,19 @@
|
||||
Процедура глПроцедураЭкспортнаяБезПараметров() Экспорт
|
||||
Возврат;
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура глПроцедураЭкспортнаяСПараметрами(
|
||||
Параметр1,
|
||||
Параметр2, Параметр3 = Неопределено) Экспорт
|
||||
Возврат;
|
||||
КонецПроцедуры
|
||||
|
||||
Функция глФункцияЭкспортнаяБезПараметров() Экспорт
|
||||
Возврат Неопределено;
|
||||
КонецФункции
|
||||
|
||||
Функция глФункцияЭкспортнаяСПараметрами(
|
||||
Параметр1,
|
||||
Параметр2, Параметр3 = Неопределено) Экспорт
|
||||
Возврат Неопределено;
|
||||
КонецФункции
|
@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="73ebec52-c754-4d88-9e56-6c1243e15c87">
|
||||
<name>ОбщийМодульКлиентСерверГлобальный</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Общий модуль клиент сервер глобальный</value>
|
||||
</synonym>
|
||||
<global>true</global>
|
||||
<clientManagedApplication>true</clientManagedApplication>
|
||||
<server>true</server>
|
||||
</mdclass:CommonModule>
|
@ -0,0 +1,7 @@
|
||||
Процедура ПокрытаяПроцедураЭкспортнаяБезПараметров() Экспорт
|
||||
Возврат;
|
||||
КонецПроцедуры
|
||||
|
||||
Функция НепокрытаяФункцияЭкспортнаяБезПараметров() Экспорт
|
||||
Возврат Неопределено;
|
||||
КонецФункции
|
@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="f6d30a94-b219-4cbd-a309-8d4ec58fb3b0">
|
||||
<name>ОбщийМодульКлиентЧастичноПокрытый</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Общий модуль клиент частично покрытый</value>
|
||||
</synonym>
|
||||
<clientManagedApplication>true</clientManagedApplication>
|
||||
</mdclass:CommonModule>
|
3
tests/fixtures/cf-edt/configuration/src/CommonModules/ОбщийМодульСервер/Module.bsl
vendored
Normal file
3
tests/fixtures/cf-edt/configuration/src/CommonModules/ОбщийМодульСервер/Module.bsl
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
Процедура ПроцедураЭкспортнаяБезПараметров() Экспорт
|
||||
Возврат;
|
||||
КонецПроцедуры
|
@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="943a1c8a-7553-4eb2-a325-310deb30efc8">
|
||||
<name>ОбщийМодульСервер</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Общий модуль сервер</value>
|
||||
</synonym>
|
||||
<server>true</server>
|
||||
</mdclass:CommonModule>
|
@ -0,0 +1,7 @@
|
||||
Процедура глНепокрытаяПроцедураЭкспортнаяБезПараметров() Экспорт
|
||||
Возврат;
|
||||
КонецПроцедуры
|
||||
|
||||
Функция глПокрытаяФункцияЭкспортнаяБезПараметров() Экспорт
|
||||
Возврат Неопределено;
|
||||
КонецФункции
|
@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="07dfa8a3-a36f-4ca6-aef3-71ade0e0fef0">
|
||||
<name>ОбщийМодульСерверГлобальныйЧастичноПокрытый</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Общий модуль сервер глобальный частично покрытый</value>
|
||||
</synonym>
|
||||
<global>true</global>
|
||||
<server>true</server>
|
||||
</mdclass:CommonModule>
|
2
tests/fixtures/cf-edt/configuration/src/Configuration/CommandInterface.cmi
vendored
Normal file
2
tests/fixtures/cf-edt/configuration/src/Configuration/CommandInterface.cmi
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<cmi:CommandInterface xmlns:cmi="http://g5.1c.ru/v8/dt/cmi"/>
|
53
tests/fixtures/cf-edt/configuration/src/Configuration/Configuration.mdo
vendored
Normal file
53
tests/fixtures/cf-edt/configuration/src/Configuration/Configuration.mdo
vendored
Normal file
@ -0,0 +1,53 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="6d7c2f33-03f3-4850-a827-d35ab72d82f4">
|
||||
<name>pc_test_conf</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>pc_test_conf</value>
|
||||
</synonym>
|
||||
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="eff42064-2bd7-4434-b9f0-dbb1ee25747c"/>
|
||||
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="c33046d0-0482-438d-b7a0-53dd9569faa7"/>
|
||||
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="471cf809-ed15-4827-80d5-7567f93a3a41"/>
|
||||
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="8305eb14-322a-459a-984a-2fbeef2fef4a"/>
|
||||
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="3fe61283-744e-46f8-b1b0-ed6a02eb17ad"/>
|
||||
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="68ca030d-281a-4dcd-92cf-4ea660499b6a"/>
|
||||
<configurationExtensionCompatibilityMode>8.3.10</configurationExtensionCompatibilityMode>
|
||||
<defaultRunMode>ManagedApplication</defaultRunMode>
|
||||
<usePurposes>PersonalComputer</usePurposes>
|
||||
<scriptVariant>Russian</scriptVariant>
|
||||
<defaultLanguage>Language.Русский</defaultLanguage>
|
||||
<dataLockControlMode>Managed</dataLockControlMode>
|
||||
<objectAutonumerationMode>NotAutoFree</objectAutonumerationMode>
|
||||
<modalityUseMode>DontUse</modalityUseMode>
|
||||
<synchronousPlatformExtensionAndAddInCallUseMode>DontUse</synchronousPlatformExtensionAndAddInCallUseMode>
|
||||
<compatibilityMode>8.3.10</compatibilityMode>
|
||||
<languages uuid="82eb3150-6f4a-45c9-b65c-f1d3d60d8d2e">
|
||||
<name>Русский</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Русский</value>
|
||||
</synonym>
|
||||
<languageCode>ru</languageCode>
|
||||
</languages>
|
||||
<commonModules>CommonModule.ОбщийМодульБезЭкспортных</commonModules>
|
||||
<commonModules>CommonModule.ОбщийМодульКлиентЧастичноПокрытый</commonModules>
|
||||
<commonModules>CommonModule.ОбщийМодульСерверГлобальныйЧастичноПокрытый</commonModules>
|
||||
<commonModules>CommonModule.ОбщийМодульКлиентСерверГлобальный</commonModules>
|
||||
<commonModules>CommonModule.ОбщийМодульСервер</commonModules>
|
||||
<exchangePlans>ExchangePlan.ПланОбмена1</exchangePlans>
|
||||
<commonForms>CommonForm.ОбщаяФорма1</commonForms>
|
||||
<catalogs>Catalog.Справочник1</catalogs>
|
||||
<documents>Document.Документ1</documents>
|
||||
<enums>Enum.Перечисление1</enums>
|
||||
<reports>Report.Отчет1</reports>
|
||||
<dataProcessors>DataProcessor.Обработка1</dataProcessors>
|
||||
<informationRegisters>InformationRegister.РегистрСведений1</informationRegisters>
|
||||
<accumulationRegisters>AccumulationRegister.РегистрНакопления1</accumulationRegisters>
|
||||
<chartsOfCharacteristicTypes>ChartOfCharacteristicTypes.ПланВидовХарактеристик1</chartsOfCharacteristicTypes>
|
||||
<chartsOfAccounts>ChartOfAccounts.ПланСчетов1</chartsOfAccounts>
|
||||
<accountingRegisters>AccountingRegister.РегистрБухгалтерии1</accountingRegisters>
|
||||
<chartsOfCalculationTypes>ChartOfCalculationTypes.ПланВидовРасчета1</chartsOfCalculationTypes>
|
||||
<calculationRegisters>CalculationRegister.РегистрРасчета1</calculationRegisters>
|
||||
<businessProcesses>BusinessProcess.БизнесПроцесс1</businessProcesses>
|
||||
<tasks>Task.Задача1</tasks>
|
||||
</mdclass:Configuration>
|
2
tests/fixtures/cf-edt/configuration/src/Configuration/MainSectionCommandInterface.cmi
vendored
Normal file
2
tests/fixtures/cf-edt/configuration/src/Configuration/MainSectionCommandInterface.cmi
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<cmi:CommandInterface xmlns:cmi="http://g5.1c.ru/v8/dt/cmi"/>
|
3
tests/fixtures/cf-edt/configuration/src/DataProcessors/Обработка1/ManagerModule.bsl
vendored
Normal file
3
tests/fixtures/cf-edt/configuration/src/DataProcessors/Обработка1/ManagerModule.bsl
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
Процедура ПроцедураЭкспортнаяБезПараметров() Экспорт
|
||||
Возврат;
|
||||
КонецПроцедуры
|
3
tests/fixtures/cf-edt/configuration/src/DataProcessors/Обработка1/ObjectModule.bsl
vendored
Normal file
3
tests/fixtures/cf-edt/configuration/src/DataProcessors/Обработка1/ObjectModule.bsl
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
Процедура ПроцедураЭкспортнаяБезПараметров() Экспорт
|
||||
Возврат;
|
||||
КонецПроцедуры
|
13
tests/fixtures/cf-edt/configuration/src/DataProcessors/Обработка1/Обработка1.mdo
vendored
Normal file
13
tests/fixtures/cf-edt/configuration/src/DataProcessors/Обработка1/Обработка1.mdo
vendored
Normal file
@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:DataProcessor xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="bfa3d382-ced9-4b59-b426-8d421885e22d">
|
||||
<producedTypes>
|
||||
<objectType typeId="9b2b1280-0ace-4361-8cbc-62ce497cc394" valueTypeId="c073ef86-4b16-4a31-bbe0-4b49f5baeb2a"/>
|
||||
<managerType typeId="f2e9a022-40ed-4a52-8a95-b63d1f2e2e80" valueTypeId="c07130ef-61ae-465b-9138-c0e1576aadce"/>
|
||||
</producedTypes>
|
||||
<name>Обработка1</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Обработка1</value>
|
||||
</synonym>
|
||||
<useStandardCommands>true</useStandardCommands>
|
||||
</mdclass:DataProcessor>
|
3
tests/fixtures/cf-edt/configuration/src/Documents/Документ1/ManagerModule.bsl
vendored
Normal file
3
tests/fixtures/cf-edt/configuration/src/Documents/Документ1/ManagerModule.bsl
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
Процедура ПроцедураЭкспортнаяБезПараметров() Экспорт
|
||||
Возврат;
|
||||
КонецПроцедуры
|
3
tests/fixtures/cf-edt/configuration/src/Documents/Документ1/ObjectModule.bsl
vendored
Normal file
3
tests/fixtures/cf-edt/configuration/src/Documents/Документ1/ObjectModule.bsl
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
Процедура ПроцедураЭкспортнаяБезПараметров() Экспорт
|
||||
Возврат;
|
||||
КонецПроцедуры
|
31
tests/fixtures/cf-edt/configuration/src/Documents/Документ1/Документ1.mdo
vendored
Normal file
31
tests/fixtures/cf-edt/configuration/src/Documents/Документ1/Документ1.mdo
vendored
Normal file
@ -0,0 +1,31 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:Document xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="fbe1fa70-a93e-40a5-9faf-a550caa38d7f">
|
||||
<producedTypes>
|
||||
<objectType typeId="2cb99e80-5333-4ebd-af20-15225b49e184" valueTypeId="f38fbeed-07e0-4828-9904-e24fa4ca939a"/>
|
||||
<refType typeId="f47388ee-d47d-4b80-bce9-c452e4ea52d6" valueTypeId="11f1db14-d792-4619-9307-64668c75cb3b"/>
|
||||
<selectionType typeId="9aa06c73-d8d5-4b28-893c-0b87c537cbf4" valueTypeId="095c424d-774f-4edd-b477-340a3edd3ce8"/>
|
||||
<listType typeId="770ce938-1606-400f-9201-40113472eaaa" valueTypeId="8101327d-980c-4726-b401-7b905c73e1d9"/>
|
||||
<managerType typeId="bc863470-7418-473c-a139-07051a3f091c" valueTypeId="4f820ad3-07d1-4264-a944-a357d6f7750e"/>
|
||||
</producedTypes>
|
||||
<name>Документ1</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Документ1</value>
|
||||
</synonym>
|
||||
<useStandardCommands>true</useStandardCommands>
|
||||
<inputByString>Document.Документ1.StandardAttribute.Number</inputByString>
|
||||
<fullTextSearchOnInputByString>DontUse</fullTextSearchOnInputByString>
|
||||
<createOnInput>Use</createOnInput>
|
||||
<dataLockControlMode>Managed</dataLockControlMode>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<numberType>String</numberType>
|
||||
<numberLength>9</numberLength>
|
||||
<numberAllowedLength>Variable</numberAllowedLength>
|
||||
<checkUnique>true</checkUnique>
|
||||
<autonumbering>true</autonumbering>
|
||||
<registerRecords>AccountingRegister.РегистрБухгалтерии1</registerRecords>
|
||||
<registerRecords>AccumulationRegister.РегистрНакопления1</registerRecords>
|
||||
<registerRecords>CalculationRegister.РегистрРасчета1</registerRecords>
|
||||
<postInPrivilegedMode>true</postInPrivilegedMode>
|
||||
<unpostInPrivilegedMode>true</unpostInPrivilegedMode>
|
||||
</mdclass:Document>
|
3
tests/fixtures/cf-edt/configuration/src/Enums/Перечисление1/ManagerModule.bsl
vendored
Normal file
3
tests/fixtures/cf-edt/configuration/src/Enums/Перечисление1/ManagerModule.bsl
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
Процедура ПроцедураЭкспортнаяБезПараметров() Экспорт
|
||||
Возврат;
|
||||
КонецПроцедуры
|
22
tests/fixtures/cf-edt/configuration/src/Enums/Перечисление1/Перечисление1.mdo
vendored
Normal file
22
tests/fixtures/cf-edt/configuration/src/Enums/Перечисление1/Перечисление1.mdo
vendored
Normal file
@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:Enum xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="b69f31fd-ee45-4972-8215-06e2add2dff5">
|
||||
<producedTypes>
|
||||
<refType typeId="8103ee59-df9f-4ac0-85ec-606747114f2f" valueTypeId="f2f71713-7c29-47db-8bd0-73ed7d64621e"/>
|
||||
<listType typeId="48255205-730d-46c4-a78e-f9ddbfefb781" valueTypeId="f147141a-04be-4ec7-97b6-2ec6f1e82f9a"/>
|
||||
<managerType typeId="e9b1a785-2c5b-48f0-9393-74fcbe00747b" valueTypeId="65050442-1626-4d4a-aa48-b13b4c7f7158"/>
|
||||
</producedTypes>
|
||||
<name>Перечисление1</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Перечисление1</value>
|
||||
</synonym>
|
||||
<quickChoice>true</quickChoice>
|
||||
<choiceMode>BothWays</choiceMode>
|
||||
<enumValues uuid="9a0d7a81-7219-4477-bcec-7ebf0fa7693a">
|
||||
<name>ЗначениеПеречисления1</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Значение перечисления1</value>
|
||||
</synonym>
|
||||
</enumValues>
|
||||
</mdclass:Enum>
|
3
tests/fixtures/cf-edt/configuration/src/ExchangePlans/ПланОбмена1/ManagerModule.bsl
vendored
Normal file
3
tests/fixtures/cf-edt/configuration/src/ExchangePlans/ПланОбмена1/ManagerModule.bsl
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
Процедура ПроцедураЭкспортнаяБезПараметров() Экспорт
|
||||
Возврат;
|
||||
КонецПроцедуры
|
3
tests/fixtures/cf-edt/configuration/src/ExchangePlans/ПланОбмена1/ObjectModule.bsl
vendored
Normal file
3
tests/fixtures/cf-edt/configuration/src/ExchangePlans/ПланОбмена1/ObjectModule.bsl
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
Процедура ПроцедураЭкспортнаяБезПараметров() Экспорт
|
||||
Возврат;
|
||||
КонецПроцедуры
|
32
tests/fixtures/cf-edt/configuration/src/ExchangePlans/ПланОбмена1/ПланОбмена1.mdo
vendored
Normal file
32
tests/fixtures/cf-edt/configuration/src/ExchangePlans/ПланОбмена1/ПланОбмена1.mdo
vendored
Normal file
@ -0,0 +1,32 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:ExchangePlan xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="26c74462-8d1d-4a9b-9ad4-ae0a4f67fe1d" thisNode="51006411-2066-4930-ac2a-f884559b951c">
|
||||
<producedTypes>
|
||||
<objectType typeId="ece6bec6-8783-4ca1-a5f0-012129bc8355" valueTypeId="de38feff-bcdd-4278-bbcf-9edf002b30d0"/>
|
||||
<refType typeId="3b601af9-cf2d-4fb1-ab36-9a1c00e3d555" valueTypeId="c3cfab51-4448-4bd4-8ba6-25f3161da002"/>
|
||||
<selectionType typeId="b56a5542-dc3d-4956-8e07-4b735f47ea25" valueTypeId="8a16606d-5a29-4db1-ae0f-f455a14ee941"/>
|
||||
<listType typeId="49818f18-803b-428a-af28-0907f457fbab" valueTypeId="0d63c2b3-cd0a-421e-abf3-18ae6b1c28b9"/>
|
||||
<managerType typeId="b9dc4f39-606b-479e-9756-eed0c9d9a0c7" valueTypeId="5d4ba846-49af-4c20-b66d-bb2ec781429f"/>
|
||||
</producedTypes>
|
||||
<name>ПланОбмена1</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>План обмена1</value>
|
||||
</synonym>
|
||||
<useStandardCommands>true</useStandardCommands>
|
||||
<inputByString>ExchangePlan.ПланОбмена1.StandardAttribute.Code</inputByString>
|
||||
<inputByString>ExchangePlan.ПланОбмена1.StandardAttribute.Description</inputByString>
|
||||
<fullTextSearchOnInputByString>DontUse</fullTextSearchOnInputByString>
|
||||
<createOnInput>DontUse</createOnInput>
|
||||
<dataLockControlMode>Managed</dataLockControlMode>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<codeLength>9</codeLength>
|
||||
<codeAllowedLength>Variable</codeAllowedLength>
|
||||
<descriptionLength>25</descriptionLength>
|
||||
<content>
|
||||
<mdObject>Document.Документ1</mdObject>
|
||||
<autoRecord>Allow</autoRecord>
|
||||
</content>
|
||||
<defaultPresentation>AsDescription</defaultPresentation>
|
||||
<editType>InDialog</editType>
|
||||
<choiceMode>BothWays</choiceMode>
|
||||
</mdclass:ExchangePlan>
|
@ -0,0 +1,3 @@
|
||||
Процедура ПроцедураЭкспортнаяБезПараметров() Экспорт
|
||||
Возврат;
|
||||
КонецПроцедуры
|
@ -0,0 +1,3 @@
|
||||
Процедура ПроцедураЭкспортнаяБезПараметров() Экспорт
|
||||
Возврат;
|
||||
КонецПроцедуры
|
@ -0,0 +1,38 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:InformationRegister xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="7ae62d7b-4af0-4e12-bbfe-b090e39f5449">
|
||||
<producedTypes>
|
||||
<selectionType typeId="21e7aac3-c837-4c47-81fa-81d5e1f9d7b6" valueTypeId="17ed2ded-fd25-4109-b61b-ddb34806e5f5"/>
|
||||
<listType typeId="50502ab3-48bc-4ec5-b55f-1f19e5d3680e" valueTypeId="58a9e899-4764-4749-9c9c-1d3ccc1e1bb7"/>
|
||||
<managerType typeId="c34d007e-cfb1-4b80-8489-5cfbfb5091ac" valueTypeId="9c99d461-13da-4780-91c4-4f5340664b5f"/>
|
||||
<recordSetType typeId="85db3d61-363d-4caa-aaba-aa91ebe8a60a" valueTypeId="88240d5f-b5a0-4059-b457-5ccfd1cdbcf8"/>
|
||||
<recordKeyType typeId="bc29afdf-0cdd-4177-a7d7-c3a54ed3e617" valueTypeId="f11487c8-84c7-45b0-a6fb-f57e31a5e102"/>
|
||||
<recordType typeId="6102f267-ecb8-466f-a772-9216435e52cc" valueTypeId="3674fe8a-3b63-4f37-b369-b9e670ef26e9"/>
|
||||
<recordManagerType typeId="40895af3-50a6-4740-9642-cbe305806135" valueTypeId="a75477d0-f786-4626-98d5-15017522d8ab"/>
|
||||
</producedTypes>
|
||||
<name>РегистрСведений1</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Регистр сведений1</value>
|
||||
</synonym>
|
||||
<useStandardCommands>true</useStandardCommands>
|
||||
<editType>InDialog</editType>
|
||||
<dataLockControlMode>Managed</dataLockControlMode>
|
||||
<dimensions uuid="90c4a005-ded5-4801-a975-b0334f485a53">
|
||||
<name>Измерение1</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Измерение1</value>
|
||||
</synonym>
|
||||
<type>
|
||||
<types>String</types>
|
||||
<stringQualifiers>
|
||||
<length>10</length>
|
||||
</stringQualifiers>
|
||||
</type>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<mainFilter>true</mainFilter>
|
||||
</dimensions>
|
||||
</mdclass:InformationRegister>
|
3
tests/fixtures/cf-edt/configuration/src/Reports/Отчет1/ManagerModule.bsl
vendored
Normal file
3
tests/fixtures/cf-edt/configuration/src/Reports/Отчет1/ManagerModule.bsl
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
Процедура ПроцедураЭкспортнаяБезПараметров() Экспорт
|
||||
Возврат;
|
||||
КонецПроцедуры
|
3
tests/fixtures/cf-edt/configuration/src/Reports/Отчет1/ObjectModule.bsl
vendored
Normal file
3
tests/fixtures/cf-edt/configuration/src/Reports/Отчет1/ObjectModule.bsl
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
Процедура ПроцедураЭкспортнаяБезПараметров() Экспорт
|
||||
Возврат;
|
||||
КонецПроцедуры
|
13
tests/fixtures/cf-edt/configuration/src/Reports/Отчет1/Отчет1.mdo
vendored
Normal file
13
tests/fixtures/cf-edt/configuration/src/Reports/Отчет1/Отчет1.mdo
vendored
Normal file
@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:Report xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="73cdde55-11eb-4632-a745-3ec8810ed6c8">
|
||||
<producedTypes>
|
||||
<objectType typeId="749c1355-8fcd-46d4-a58f-95335727e2e2" valueTypeId="a2c4585d-829d-4b92-92b0-780af14fcb56"/>
|
||||
<managerType typeId="74d90084-8786-4d79-836b-32bbd5a38167" valueTypeId="46807a19-534c-403d-9241-fdeb000a6d19"/>
|
||||
</producedTypes>
|
||||
<name>Отчет1</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Отчет1</value>
|
||||
</synonym>
|
||||
<useStandardCommands>true</useStandardCommands>
|
||||
</mdclass:Report>
|
3
tests/fixtures/cf-edt/configuration/src/Tasks/Задача1/ManagerModule.bsl
vendored
Normal file
3
tests/fixtures/cf-edt/configuration/src/Tasks/Задача1/ManagerModule.bsl
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
Процедура ПроцедураЭкспортнаяБезПараметров() Экспорт
|
||||
Возврат;
|
||||
КонецПроцедуры
|
3
tests/fixtures/cf-edt/configuration/src/Tasks/Задача1/ObjectModule.bsl
vendored
Normal file
3
tests/fixtures/cf-edt/configuration/src/Tasks/Задача1/ObjectModule.bsl
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
Процедура ПроцедураЭкспортнаяБезПараметров() Экспорт
|
||||
Возврат;
|
||||
КонецПроцедуры
|
31
tests/fixtures/cf-edt/configuration/src/Tasks/Задача1/Задача1.mdo
vendored
Normal file
31
tests/fixtures/cf-edt/configuration/src/Tasks/Задача1/Задача1.mdo
vendored
Normal file
@ -0,0 +1,31 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:Task xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="a03e7bee-8831-4422-a955-10d36432be58">
|
||||
<producedTypes>
|
||||
<objectType typeId="6cec2c26-d314-4fef-a1e5-83422bef04a3" valueTypeId="690a50e8-075f-42c2-bbb9-e6013de42048"/>
|
||||
<refType typeId="26392add-b784-409a-aeec-2ab71b545c01" valueTypeId="76068777-11be-4419-95f1-089230b94849"/>
|
||||
<selectionType typeId="e8d93d60-fcfa-4dec-a1d7-3ee7bbb16565" valueTypeId="cb9d4a8d-cf9d-4810-b846-67ec8f3b7ead"/>
|
||||
<listType typeId="d05df92b-d261-41ba-8983-cfee52b500a6" valueTypeId="16a61aa8-78d7-4a08-81dd-feb1b163cb9a"/>
|
||||
<managerType typeId="12ff7843-514f-48fc-85f8-6f86d369944c" valueTypeId="0672e7ba-5488-4389-8c43-d2e7d7e0940c"/>
|
||||
</producedTypes>
|
||||
<name>Задача1</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Задача1</value>
|
||||
</synonym>
|
||||
<useStandardCommands>true</useStandardCommands>
|
||||
<inputByString>Task.Задача1.StandardAttribute.Number</inputByString>
|
||||
<inputByString>Task.Задача1.StandardAttribute.Description</inputByString>
|
||||
<fullTextSearchOnInputByString>DontUse</fullTextSearchOnInputByString>
|
||||
<createOnInput>DontUse</createOnInput>
|
||||
<dataLockControlMode>Managed</dataLockControlMode>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<numberType>String</numberType>
|
||||
<numberLength>9</numberLength>
|
||||
<numberAllowedLength>Variable</numberAllowedLength>
|
||||
<checkUnique>true</checkUnique>
|
||||
<autonumbering>true</autonumbering>
|
||||
<taskNumberAutoPrefix>DontUse</taskNumberAutoPrefix>
|
||||
<descriptionLength>25</descriptionLength>
|
||||
<defaultPresentation>AsDescription</defaultPresentation>
|
||||
<editType>InDialog</editType>
|
||||
</mdclass:Task>
|
18
tests/fixtures/cf-edt/tests/.project
vendored
Normal file
18
tests/fixtures/cf-edt/tests/.project
vendored
Normal file
@ -0,0 +1,18 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>pc_test_ext</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
|
||||
<nature>com._1c.g5.v8.dt.core.V8ExtensionNature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
2
tests/fixtures/cf-edt/tests/.settings/org.eclipse.core.resources.prefs
vendored
Normal file
2
tests/fixtures/cf-edt/tests/.settings/org.eclipse.core.resources.prefs
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
eclipse.preferences.version=1
|
||||
encoding/<project>=UTF-8
|
3
tests/fixtures/cf-edt/tests/DT-INF/PROJECT.PMF
vendored
Normal file
3
tests/fixtures/cf-edt/tests/DT-INF/PROJECT.PMF
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
Manifest-Version: 1.0
|
||||
Runtime-Version: 8.3.10
|
||||
Base-Project: pc_test_conf
|
52
tests/fixtures/cf-edt/tests/src/CommonModules/ОМ_ОбщийМодульКлиентЧастичноПокрытый/Module.bsl
vendored
Normal file
52
tests/fixtures/cf-edt/tests/src/CommonModules/ОМ_ОбщийМодульКлиентЧастичноПокрытый/Module.bsl
vendored
Normal file
@ -0,0 +1,52 @@
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// Экспортные процедуры-тесты
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#Область ТестыAPI
|
||||
|
||||
// ИсполняемыеСценарии
|
||||
// Сервисный метод для получения списка тестовых методов
|
||||
// Параметры:
|
||||
// ДополнительныеПараметры - Структура - Дополнительные параметры, используемые при формировании списка тестов
|
||||
// Возвращаемое значение:
|
||||
// Массив - Имена методов тестов
|
||||
Функция ИсполняемыеСценарии(ДополнительныеПараметры = Неопределено) Экспорт
|
||||
|
||||
ИсполняемыеСценарии = Новый Массив;
|
||||
ИсполняемыеСценарии.Добавить("ПокрытаяПроцедураЭкспортнаяБезПараметров");
|
||||
Возврат ИсполняемыеСценарии;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область Тесты
|
||||
|
||||
// @unit-test:CommonModule
|
||||
Процедура ПокрытаяПроцедураЭкспортнаяБезПараметров(Фреймворк, ВыполнитьВТранзакцииСОтменой = Истина) Экспорт
|
||||
|
||||
#Если Сервер Тогда
|
||||
Если ВыполнитьВТранзакцииСОтменой Тогда
|
||||
|
||||
TestsWrapper.ВыполнитьТестВТранзакции(
|
||||
Метаданные.ОбщиеМодули.ОМ_ОбщийМодуль0,
|
||||
"ПокрытаяПроцедураЭкспортнаяБезПараметров",
|
||||
Фреймворк);
|
||||
|
||||
Возврат;
|
||||
|
||||
КонецЕсли;
|
||||
#КонецЕсли
|
||||
|
||||
ВызватьИсключение "Тест 'ОМ_ОбщийМодуль0.ПокрытаяПроцедураЭкспортнаяБезПараметров' не реализован";
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// Процедуры и функции, составляющие внутреннюю реализацию модуля
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
#КонецОбласти
|
@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="c478f257-724e-4109-a4ce-122f48af86c6">
|
||||
<name>ОМ_ОбщийМодульКлиентЧастичноПокрытый</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>ОМ общий модуль клиент частично покрытый</value>
|
||||
</synonym>
|
||||
<clientManagedApplication>true</clientManagedApplication>
|
||||
</mdclass:CommonModule>
|
@ -0,0 +1,52 @@
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// Экспортные процедуры-тесты
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#Область ТестыAPI
|
||||
|
||||
// ИсполняемыеСценарии
|
||||
// Сервисный метод для получения списка тестовых методов
|
||||
// Параметры:
|
||||
// ДополнительныеПараметры - Структура - Дополнительные параметры, используемые при формировании списка тестов
|
||||
// Возвращаемое значение:
|
||||
// Массив - Имена методов тестов
|
||||
Функция ИсполняемыеСценарии(ДополнительныеПараметры = Неопределено) Экспорт
|
||||
|
||||
ИсполняемыеСценарии = Новый Массив;
|
||||
ИсполняемыеСценарии.Добавить("ГлобальныйглПокрытаяФункцияЭкспортнаяБезПараметров");
|
||||
Возврат ИсполняемыеСценарии;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область Тесты
|
||||
|
||||
// @unit-test:CommonModule
|
||||
Процедура ГлобальныйглПокрытаяФункцияЭкспортнаяБезПараметров(Фреймворк, ВыполнитьВТранзакцииСОтменой = Истина) Экспорт
|
||||
|
||||
#Если Сервер Тогда
|
||||
Если ВыполнитьВТранзакцииСОтменой Тогда
|
||||
|
||||
TestsWrapper.ВыполнитьТестВТранзакции(
|
||||
Метаданные.ОбщиеМодули.ОМ_ОбщийМодульКлиентЧастичноПокрытый,
|
||||
"ГлобальныйглПокрытаяФункцияЭкспортнаяБезПараметров",
|
||||
Фреймворк);
|
||||
|
||||
Возврат;
|
||||
|
||||
КонецЕсли;
|
||||
#КонецЕсли
|
||||
|
||||
ВызватьИсключение "Тест 'ОМ_ОбщийМодуль0.ГлобальныйглПокрытаяФункцияЭкспортнаяБезПараметров' не реализован";
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// Процедуры и функции, составляющие внутреннюю реализацию модуля
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
#КонецОбласти
|
@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="e3043564-091e-44c1-94f2-b37a4216ee22">
|
||||
<name>ОМ_ОбщийМодульСерверГлобальныйЧастичноПокрытый</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>ОМ общий модуль сервер глобальный частично покрытый</value>
|
||||
</synonym>
|
||||
<server>true</server>
|
||||
</mdclass:CommonModule>
|
2
tests/fixtures/cf-edt/tests/src/Configuration/CommandInterface.cmi
vendored
Normal file
2
tests/fixtures/cf-edt/tests/src/Configuration/CommandInterface.cmi
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<cmi:CommandInterface xmlns:cmi="http://g5.1c.ru/v8/dt/cmi"/>
|
45
tests/fixtures/cf-edt/tests/src/Configuration/Configuration.mdo
vendored
Normal file
45
tests/fixtures/cf-edt/tests/src/Configuration/Configuration.mdo
vendored
Normal file
@ -0,0 +1,45 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:Configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" xmlns:mdclassExtension="http://g5.1c.ru/v8/dt/metadata/mdclass/extension" uuid="e329b97f-6229-4216-b047-ca0ffe03cb04">
|
||||
<name>pc_test_ext</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>pc_test_ext</value>
|
||||
</synonym>
|
||||
<objectBelonging>Adopted</objectBelonging>
|
||||
<extension xsi:type="mdclassExtension:ConfigurationExtension">
|
||||
<defaultRunMode>Checked</defaultRunMode>
|
||||
<usePurposes>Checked</usePurposes>
|
||||
<commandInterface>Extended</commandInterface>
|
||||
<mainSectionCommandInterface>Extended</mainSectionCommandInterface>
|
||||
<defaultLanguage>Checked</defaultLanguage>
|
||||
<modalityUseMode>Checked</modalityUseMode>
|
||||
<interfaceCompatibilityMode>Checked</interfaceCompatibilityMode>
|
||||
<compatibilityMode>Checked</compatibilityMode>
|
||||
</extension>
|
||||
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="597b4e0d-618a-4f16-9c81-b4e4066e3d82"/>
|
||||
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="2ee241af-d177-4c5a-bdd0-ad37a325e9f9"/>
|
||||
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="e58a236a-d2d2-4712-986d-09adc84aaa18"/>
|
||||
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="f767d5bc-4052-47c6-b2da-49f0357b4bcf"/>
|
||||
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="bbb720ac-fe1b-47ff-944f-4e57bb77bd87"/>
|
||||
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="360cbe06-d304-4b9e-bc3c-e34841ec4c6d"/>
|
||||
<keepMappingToExtendedConfigurationObjectsByIDs>true</keepMappingToExtendedConfigurationObjectsByIDs>
|
||||
<namePrefix>pc_test_ext_</namePrefix>
|
||||
<configurationExtensionCompatibilityMode>8.3.10</configurationExtensionCompatibilityMode>
|
||||
<configurationExtensionPurpose>Customization</configurationExtensionPurpose>
|
||||
<defaultRunMode>ManagedApplication</defaultRunMode>
|
||||
<usePurposes>PersonalComputer</usePurposes>
|
||||
<scriptVariant>Russian</scriptVariant>
|
||||
<defaultLanguage>Language.Русский</defaultLanguage>
|
||||
<modalityUseMode>DontUse</modalityUseMode>
|
||||
<compatibilityMode>8.3.10</compatibilityMode>
|
||||
<languages uuid="fbfe6f58-fb80-4d94-aebe-5a7dced0a590">
|
||||
<name>Русский</name>
|
||||
<objectBelonging>Adopted</objectBelonging>
|
||||
<extension xsi:type="mdclassExtension:LanguageExtension">
|
||||
<languageCode>Checked</languageCode>
|
||||
</extension>
|
||||
<languageCode>ru</languageCode>
|
||||
</languages>
|
||||
<commonModules>CommonModule.ОМ_ОбщийМодульКлиентЧастичноПокрытый</commonModules>
|
||||
<commonModules>CommonModule.ОМ_ОбщийМодульСерверГлобальныйЧастичноПокрытый</commonModules>
|
||||
</mdclass:Configuration>
|
2
tests/fixtures/cf-edt/tests/src/Configuration/MainSectionCommandInterface.cmi
vendored
Normal file
2
tests/fixtures/cf-edt/tests/src/Configuration/MainSectionCommandInterface.cmi
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<cmi:CommandInterface xmlns:cmi="http://g5.1c.ru/v8/dt/cmi"/>
|
7
tests/fixtures/Настройки/v8configФорматEDT.json
vendored
Normal file
7
tests/fixtures/Настройки/v8configФорматEDT.json
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
{
|
||||
"GLOBAL": {
|
||||
"ВерсияПлатформы": "8.3.10.2309",
|
||||
"version": "2.0",
|
||||
"ФорматEDT": true
|
||||
}
|
||||
}
|
7
tests/fixtures/Настройки/v8configФорматКонфигуратора.json
vendored
Normal file
7
tests/fixtures/Настройки/v8configФорматКонфигуратора.json
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
{
|
||||
"GLOBAL": {
|
||||
"ВерсияПлатформы": "8.3.10.2309",
|
||||
"version": "2.0",
|
||||
"ФорматEDT": false
|
||||
}
|
||||
}
|
7
tests/fixtures/Настройки/v8configФорматНеправильный.json
vendored
Normal file
7
tests/fixtures/Настройки/v8configФорматНеправильный.json
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
{
|
||||
"GLOBAL": {
|
||||
"ВерсияПлатформы": "8.3.10.2309",
|
||||
"version": "2.0",
|
||||
"ФорматEDT": "да"
|
||||
}
|
||||
}
|
6
tests/fixtures/Настройки/v8configФорматПоУмолчанию.json
vendored
Normal file
6
tests/fixtures/Настройки/v8configФорматПоУмолчанию.json
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
{
|
||||
"GLOBAL": {
|
||||
"ВерсияПлатформы": "8.3.10.2309",
|
||||
"version": "2.0"
|
||||
}
|
||||
}
|
@ -1,11 +1,11 @@
|
||||
Процедура Дурак (парам1)
|
||||
КонецПроцедуры;
|
||||
|
||||
Функция РадномныеСасайВычисления() Экспорт
|
||||
Функция РадномныеДуракВычисления() Экспорт
|
||||
КонецФункции
|
||||
|
||||
Процедура Изменить(Парам1, Парам2)
|
||||
Перем = БабайСасай ;
|
||||
Перем = Дурак ;
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Изм(Парам 1 = Неопределено)
|
685
tests/ПроверкаСценариевОбработки.os
Normal file
685
tests/ПроверкаСценариевОбработки.os
Normal file
@ -0,0 +1,685 @@
|
||||
// BSLLS:LineLength-off
|
||||
#Использовать asserts
|
||||
#Использовать logos
|
||||
#Использовать tempfiles
|
||||
#Использовать fs
|
||||
|
||||
Перем юТест;
|
||||
Перем Лог;
|
||||
Перем МенеджерВременныхФайлов;
|
||||
|
||||
#Область ПрограммныйИнтерфейс
|
||||
// Основная точка входа
|
||||
Функция ПолучитьСписокТестов(ЮнитТестирование) Экспорт
|
||||
|
||||
юТест = ЮнитТестирование;
|
||||
|
||||
ВсеТесты = Новый Массив;
|
||||
|
||||
ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийПроверкиДублейПроцедурВызываетИсключение");
|
||||
ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийПроверкиДублейПроцедурОбработаетФайл");
|
||||
ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийПроверкиДублейПроцедурНеОбработаетНесуществующийФайл");
|
||||
ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийПроверкиДублейПроцедурНеОбработаетНеИсходник");
|
||||
ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийОтключенияПолнотекстовогоПоискаИмеетМетодПолученияНастроек");
|
||||
ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийРазбораОтчетовОбработокРасширенийИмеетМетодПолученияНастроек");
|
||||
ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийОтключенияПолнотекстовогоПоискаВозвращаетНастройки");
|
||||
ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийРазбораОтчетовОбработокРасширенийВозвращаетНастройки");
|
||||
ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийИсправлениеНеКаноническогоНаписанияИсправляетФайл");
|
||||
ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийИсправлениеНеКаноническогоНаписанияНеИндексируетНеизмененные");
|
||||
ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийИсправлениеНеКаноническогоНаписанияИсправляетТолькоНаписание");
|
||||
ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСинхронизацияОбъектовМетаданныхВызываетИсключение");
|
||||
ВсеТесты.Добавить("ТестДолжен_ПроверитьЗагрузкуСценариевПоИмени");
|
||||
ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийДобавлениеТестовВРасширениеОбрабатываетНегативныеКейсы");
|
||||
ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийДобавлениеТестовВРасширениеДобавляетИДополняетМодулиТестов");
|
||||
|
||||
Возврат ВсеТесты;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ПередЗапускомТеста() Экспорт
|
||||
|
||||
МенеджерПриложения.Инициализировать(ПараметрыПриложения);
|
||||
|
||||
ВремТестер = Новый Тестер;
|
||||
Лог = Логирование.ПолучитьЛог(ВремТестер.ИмяЛога());
|
||||
|
||||
ВключитьПоказОтладки();
|
||||
|
||||
МенеджерВременныхФайлов = Новый МенеджерВременныхФайлов;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПослеЗапускаТеста() Экспорт
|
||||
|
||||
МенеджерВременныхФайлов.Удалить();
|
||||
МенеджерВременныхФайлов = Неопределено;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#Область ИсправлениеНеКаноническогоНаписания
|
||||
|
||||
Процедура ТестДолжен_ПроверитьЧтоСценарийИсправлениеНеКаноническогоНаписанияИсправляетФайл() Экспорт
|
||||
|
||||
ОбъектСценария = ПолучитьСценарий("ИсправлениеНеКаноническогоНаписания.os");
|
||||
ИмяФайла = "ИсправлениеНеКаноническогоНаписания.bsl";
|
||||
|
||||
Файл = ПодготовитьИзменяемыйТестовыйФайл(ИмяФайла);
|
||||
|
||||
Результат = ОбъектСценария.ОбработатьФайл(Файл, Файл.Путь, ПолучитьДополнительныеНастройки());
|
||||
Ожидаем.Что(Результат, Истина).ЭтоИстина();
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ТестДолжен_ПроверитьЧтоСценарийИсправлениеНеКаноническогоНаписанияИсправляетТолькоНаписание() Экспорт
|
||||
|
||||
ОбъектСценария = ПолучитьСценарий("ИсправлениеНеКаноническогоНаписания.os");
|
||||
ИмяФайла = "ИсправлениеНеКаноническогоНаписания.bsl";
|
||||
|
||||
Файл = ПодготовитьИзменяемыйТестовыйФайл(ИмяФайла);
|
||||
ТекстФайлаДо = ФайловыеОперации.ПрочитатьТекстФайла(Файл.ПолноеИмя);
|
||||
Результат = ОбъектСценария.ОбработатьФайл(Файл, Файл.Путь, ПолучитьДополнительныеНастройки());
|
||||
ТекстФайлаПосле = ФайловыеОперации.ПрочитатьТекстФайла(Файл.ПолноеИмя);
|
||||
|
||||
// текст изменен
|
||||
Ожидаем.Что(ТекстФайлаДо, Истина).Не_().Равно(ТекстФайлаПосле);
|
||||
// текст тождественен
|
||||
Ожидаем.Что(ВРег(ТекстФайлаДо), Истина).Равно(ВРег(ТекстФайлаПосле));
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ТестДолжен_ПроверитьЧтоСценарийИсправлениеНеКаноническогоНаписанияНеИндексируетНеизмененные() Экспорт
|
||||
|
||||
ОбъектСценария = ПолучитьСценарий("ИсправлениеНеКаноническогоНаписания.os");
|
||||
ИмяФайла = "ИсправлениеНеКаноническогоНаписания.bsl";
|
||||
|
||||
Файл = ПодготовитьИзменяемыйТестовыйФайл(ИмяФайла);
|
||||
|
||||
Результат = ОбъектСценария.ОбработатьФайл(Файл, Файл.Путь, ПолучитьДополнительныеНастройки());
|
||||
ДопНастройки = ПолучитьДополнительныеНастройки();
|
||||
|
||||
Результат = ОбъектСценария.ОбработатьФайл(Файл, Файл.Путь, ДопНастройки);
|
||||
Ожидаем.Что(ДопНастройки.ИзмененныеКаталоги.Количество(), Истина).Равно(0);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ОтключениеПолнотекстовогоПоиска
|
||||
Процедура ТестДолжен_ПроверитьЧтоСценарийОтключенияПолнотекстовогоПоискаИмеетМетодПолученияНастроек() Экспорт
|
||||
|
||||
ОбъектСценария = ПолучитьСценарий("ОтключениеПолнотекстовогоПоиска.os");
|
||||
|
||||
СценарийИмеетМетод(ОбъектСценария, НазваниеМетодаНастроек());
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ТестДолжен_ПроверитьЧтоСценарийОтключенияПолнотекстовогоПоискаВозвращаетНастройки() Экспорт
|
||||
|
||||
ОбъектСценария = ПолучитьСценарий("ОтключениеПолнотекстовогоПоиска.os");
|
||||
|
||||
СценарийВозвращаетНастройки(ОбъектСценария, "ОтключениеПолнотекстовогоПоиска");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область РазборОтчетовОбработокРасширений
|
||||
Процедура ТестДолжен_ПроверитьЧтоСценарийРазбораОтчетовОбработокРасширенийИмеетМетодПолученияНастроек() Экспорт
|
||||
|
||||
ОбъектСценария = ПолучитьСценарий("РазборОтчетовОбработокРасширений.os");
|
||||
|
||||
СценарийИмеетМетод(ОбъектСценария, НазваниеМетодаНастроек());
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ТестДолжен_ПроверитьЧтоСценарийРазбораОтчетовОбработокРасширенийВозвращаетНастройки() Экспорт
|
||||
|
||||
ОбъектСценария = ПолучитьСценарий("РазборОтчетовОбработокРасширений.os");
|
||||
|
||||
СценарийВозвращаетНастройки(ОбъектСценария, "РазборОтчетовОбработокРасширений");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ПроверкаДублейПроцедурИФункций
|
||||
Процедура ТестДолжен_ПроверитьЧтоСценарийПроверкиДублейПроцедурВызываетИсключение() Экспорт
|
||||
|
||||
ОбъектСценария = ПолучитьСценарий("ПроверкаДублейПроцедурИФункций.os");
|
||||
Файл = Новый Файл(ОбъединитьПути(КаталогТестовыхФикстур(), "ПроверкаДублейПроцедурНегативныйТест.bsl"));
|
||||
СПараметрами = Новый Файл(ОбъединитьПути(КаталогТестовыхФикстур(), "ПроверкаДублейПроцедурСПараметрами.bsl"));
|
||||
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "обнаружены неуникальные имена методов");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, СПараметрами, "обнаружены неуникальные имена методов");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ТестДолжен_ПроверитьЧтоСценарийПроверкиДублейПроцедурОбработаетФайл() Экспорт
|
||||
|
||||
Файл = Новый Файл(ОбъединитьПути(КаталогТестовыхФикстур(), "ПроверкаДублейПроцедурПоложительныйТест.bsl"));
|
||||
ОбъектСценария = ПолучитьСценарий("ПроверкаДублейПроцедурИФункций.os");
|
||||
Результат = ОбъектСценария.ОбработатьФайл(Файл, Файл.Путь, ПолучитьДополнительныеНастройки());
|
||||
|
||||
Ожидаем.Что(Результат, Истина).ЭтоИстина();
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ТестДолжен_ПроверитьЧтоСценарийПроверкиДублейПроцедурНеОбработаетНесуществующийФайл() Экспорт
|
||||
|
||||
Файл = Новый Файл(ПолучитьИмяВременногоФайла("bsl"));
|
||||
ОбъектСценария = ПолучитьСценарий("ПроверкаДублейПроцедурИФункций.os");
|
||||
Результат = ОбъектСценария.ОбработатьФайл(Файл, Файл.Путь, ПолучитьДополнительныеНастройки());
|
||||
|
||||
Ожидаем.Что(Результат, Истина).ЭтоЛожь();
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ТестДолжен_ПроверитьЧтоСценарийПроверкиДублейПроцедурНеОбработаетНеИсходник() Экспорт
|
||||
|
||||
Файл = Новый Файл(МенеджерВременныхФайлов.СоздатьФайл("xml"));
|
||||
ОбъектСценария = ПолучитьСценарий("ПроверкаДублейПроцедурИФункций.os");
|
||||
Результат = ОбъектСценария.ОбработатьФайл(Файл, Файл.Путь, ПолучитьДополнительныеНастройки());
|
||||
|
||||
Ожидаем.Что(Результат, Истина).ЭтоЛожь();
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ТестДолжен_ПроверитьЗагрузкуСценариевПоИмени() Экспорт
|
||||
|
||||
Файл = Новый Файл(МенеджерВременныхФайлов.СоздатьФайл("bsl"));
|
||||
|
||||
Имена = Новый Массив;
|
||||
|
||||
Имена.Добавить("ПроверкаДублейПроцедурИФункций");
|
||||
|
||||
Сценарии = СценарииОбработки.Загрузить(Файл.Путь, "", Имена);
|
||||
Ожидаем.Что(Сценарии.Количество(), "Сценарий не получен").Равно(1);
|
||||
|
||||
Имена.Добавить("ПроверкаДублейПроцедурИФункций");
|
||||
Сценарии = СценарииОбработки.Загрузить(Файл.Путь, "", Имена);
|
||||
Ожидаем.Что(Сценарии.Количество(), "Добавлен один и тот же сценарий").Равно(1);
|
||||
|
||||
Имена.Добавить("ПроверкаДублейПроцедурИФункций.os");
|
||||
Сценарии = СценарииОбработки.Загрузить(Файл.Путь, "", Имена);
|
||||
Ожидаем.Что(Сценарии.Количество(), "Добавлен один и тот же сценарий").Равно(1);
|
||||
|
||||
Имена.Добавить("РазборОтчетовОбработокРасширений.os");
|
||||
Сценарии = СценарииОбработки.Загрузить(Файл.Путь, "", Имена);
|
||||
Ожидаем.Что(Сценарии.Количество(), "С массивом загружаемых сценариев что-то пошло не так").Равно(2);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СинхронизацияОбъектовМетаданныхИФайлов
|
||||
Процедура ТестДолжен_ПроверитьЧтоСинхронизацияОбъектовМетаданныхВызываетИсключение() Экспорт
|
||||
|
||||
ОбъектСценария = ПолучитьСценарий("СинхронизацияОбъектовМетаданныхИФайлов.os");
|
||||
Файл = Новый Файл(ОбъединитьПути(КаталогТестовыхФикстур(), "СинхронизацияОбъектовМетаданныхИФайлов\Configuration.xml"));
|
||||
|
||||
// Переименование типа без переименования каталога
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Имя каталога Ancillary отличается от метаданного ancillary");
|
||||
// удаление типа без удаления файлов
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Необходимо удалить файлы");
|
||||
// базовые элементы
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствует каталог ChartsOfCharacteristicTypes");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствует каталог Catalogs");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствует каталог CommandGroups");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствует каталог CommonAttributes");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствует каталог CommonCommands");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствует каталог CommonForms");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствует каталог CommonModules");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствует каталог CommonPictures");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствует каталог CommonTemplates");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствует каталог Constants");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствует каталог DataProcessors");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствует каталог DefinedTypes");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствует каталог Documents");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствует каталог Enums");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствует каталог EventSubscriptions");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствует каталог FunctionalOptions");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствует каталог InformationRegisters");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствует каталог Languages");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствует каталог Reports");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствует каталог Roles");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствует каталог ScheduledJobs");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствует каталог SessionParameters");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствует каталог Subsystems");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствует каталог XDTOPackages");
|
||||
// элементы метаданных
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствуют файлы для Language.Русский");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствуют файлы для Subsystem.ПодсистемыБСП");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствуют файлы для CommonPicture.GUID");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствуют файлы для Role.АвтоТестированиеАдминистратор");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствуют файлы для SessionParameter.автоТестирование");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствуют файлы для CommonTemplate.HiddenStart");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствуют файлы для CommonModule.sFTPКлиентСервер");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствуют файлы для CommonAttribute.UID");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствуют файлы для XDTOPackage.bsp_ancillary");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствуют файлы для EventSubscription.ВерсионированиеПриЗаписи");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствуют файлы для ScheduledJob.РоботАвтоматическаяОбработкаИзмененийАдресногоКлассификатора");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствуют файлы для FunctionalOption.ВестиЖурналДействийПользователя");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствуют файлы для DefinedType.ТипUIDСтрока");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствуют файлы для CommonCommand.АудиторскийСлед");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствуют файлы для CommandGroup.Печать");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствуют файлы для Constant.АдресатыПолученияУведомленийОбИзмененияхВАлгоритмах");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствуют файлы для CommonForm.АвторизацияПользователя");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствуют файлы для Catalog.АдресаЭлектроннойПочты");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствуют файлы для Document.АттестацияРазработчика");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствуют файлы для Enum.ВариантХраненияФайлов");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствуют файлы для Report.анализЖурналаРегистрации");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствуют файлы для DataProcessor.активныеПользователи");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствуют файлы для InformationRegister.администраторыБаз");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствуют файлы для ChartOfCharacteristicTypes.РасширенныеХарактеристикиОбъектов");
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ДобавлениеТестовВРасширение
|
||||
|
||||
Процедура ТестДолжен_ПроверитьЧтоСценарийДобавлениеТестовВРасширениеОбрабатываетНегативныеКейсы() Экспорт
|
||||
|
||||
ОбъектСценария = ПолучитьСценарий("ДобавлениеТестовВРасширение.os");
|
||||
|
||||
// Проверка параметров сценария.
|
||||
ДополнительныеПараметры = Новый Структура("Лог, КаталогРепозитория, ТекущийКаталогИсходныхФайлов", Лог);
|
||||
ПараметрыМетода = Новый Массив();
|
||||
ПараметрыМетода.Добавить(Новый Файл(ПолучитьИмяВременногоФайла()));
|
||||
ПараметрыМетода.Добавить("");
|
||||
ПараметрыМетода.Добавить(ДополнительныеПараметры);
|
||||
Ожидаем.Что(ОбъектСценария).Метод("ОбработатьФайл", ПараметрыМетода).ВыбрасываетИсключение("не заполнен параметр 'КаталогИсходныхФайлов'");
|
||||
ПараметрыМетода[1] = ПараметрыМетода[0].Путь;
|
||||
Ожидаем.Что(ОбъектСценария).Метод("ОбработатьФайл", ПараметрыМетода).ВыбрасываетИсключение("не заполнен параметр 'ДополнительныеПараметры.КаталогРепозитория'");
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// Проверка репозитория.
|
||||
КаталогРепозитория = МенеджерВременныхФайлов.СоздатьКаталог();
|
||||
КаталогКонфигурации = ОбъединитьПути(КаталогРепозитория, "configuration");
|
||||
КаталогИсходников = ОбъединитьПути(КаталогКонфигурации, "src");
|
||||
СоздатьКаталог(КаталогКонфигурации);
|
||||
ФС.КопироватьСодержимоеКаталога(ОбъединитьПути(КаталогТестовыхФикстур(), "cf-edt", "configuration"), КаталогКонфигурации);
|
||||
ПодходящийФайл = Новый Файл(ОбъединитьПути(КаталогИсходников, "CommonModules", "ОбщийМодульКлиентЧастичноПокрытый", "Module.bsl"));
|
||||
Ожидаем.Что(ПодходящийФайл.Существует(), СтрШаблон("Отсутствует файл-пример '%1'", ПодходящийФайл.ПолноеИмя)).ЭтоИстина();
|
||||
ДополнительныеПараметры = ПолучитьДополнительныеНастройки(КаталогРепозитория, КаталогКонфигурации);
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
НастройкиНеEDT = Новый Массив();
|
||||
НастройкиНеEDT.Добавить("v8configФорматКонфигуратора.json");
|
||||
НастройкиНеEDT.Добавить("v8configФорматНеправильный.json");
|
||||
НастройкиНеEDT.Добавить("v8configФорматПоУмолчанию.json");
|
||||
Для каждого НастройкаНеEDT Из НастройкиНеEDT Цикл
|
||||
|
||||
ИспользоватьТестовуюНастройку(КаталогРепозитория, НастройкаНеEDT);
|
||||
Результат = ОбъектСценария.ОбработатьФайл(
|
||||
ПодходящийФайл,
|
||||
ДополнительныеПараметры.ТекущийКаталогИсходныхФайлов,
|
||||
ДополнительныеПараметры);
|
||||
Сообщение = СтрШаблон("Обработался файл, вопреки настройке '%1'", НастройкаНеEDT);
|
||||
Ожидаем.Что(Результат, Сообщение).ЭтоЛожь();
|
||||
|
||||
КонецЦикла;
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
ИспользоватьТестовуюНастройку(КаталогРепозитория, "v8configФорматEDT.json");
|
||||
Результат = ОбъектСценария.ОбработатьФайл(
|
||||
ПодходящийФайл,
|
||||
ДополнительныеПараметры.ТекущийКаталогИсходныхФайлов,
|
||||
ДополнительныеПараметры);
|
||||
Сообщение = "Обработался файл при отсутствии тестового расширения";
|
||||
Ожидаем.Что(Результат, Сообщение).ЭтоЛожь();
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// Проверка файла.
|
||||
КаталогТестов = ОбъединитьПути(КаталогРепозитория, "tests");
|
||||
КаталогИсходниковТестов = ОбъединитьПути(КаталогТестов, "src");
|
||||
ФС.КопироватьСодержимоеКаталога(ОбъединитьПути(КаталогТестовыхФикстур(), "cf-edt", "tests"), КаталогТестов);
|
||||
НеподходящиеФайлы = Новый Массив();
|
||||
НеподходящиеФайлы.Добавить(Новый Файл(ОбъединитьПути(КаталогИсходников, "CommonModules", "ОбщийМодульКлиентЧастичноПокрытый", "ОбщийМодульКлиентЧастичноПокрытый.mdo")));
|
||||
НеподходящиеФайлы.Добавить(Новый Файл(ОбъединитьПути(КаталогИсходниковТестов, "CommonModules", "ОМ_ОбщийМодульКлиентЧастичноПокрытый", "Module.bsl")));
|
||||
НеподходящиеФайлы.Добавить(Новый Файл(ПолучитьИмяВременногоФайла("bsl")));
|
||||
Ожидаем.Что(НеподходящиеФайлы[0].Существует(), СтрШаблон("Отсутствует файл-пример '%1'", НеподходящиеФайлы[0].ПолноеИмя)).ЭтоИстина();
|
||||
Ожидаем.Что(НеподходящиеФайлы[1].Существует(), СтрШаблон("Отсутствует файл-пример '%1'", НеподходящиеФайлы[1].ПолноеИмя)).ЭтоИстина();
|
||||
Для каждого НеподходящийФайл Из НеподходящиеФайлы Цикл
|
||||
|
||||
Результат = ОбъектСценария.ОбработатьФайл(
|
||||
НеподходящийФайл,
|
||||
ДополнительныеПараметры.ТекущийКаталогИсходныхФайлов,
|
||||
ДополнительныеПараметры);
|
||||
Сообщение = СтрШаблон("Обработался неподходящий файл '%1'", НастройкаНеEDT);
|
||||
Ожидаем.Что(Результат, Сообщение).ЭтоЛожь();
|
||||
|
||||
КонецЦикла;
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
ФайлБезЭкспортныхМетодов = Новый Файл(ОбъединитьПути(КаталогИсходников, "CommonModules", "ОбщийМодульБезЭкспортных", "Module.bsl"));
|
||||
Ожидаем.Что(ФайлБезЭкспортныхМетодов.Существует(), СтрШаблон("Отсутствует файл-пример '%1'", ФайлБезЭкспортныхМетодов.ПолноеИмя)).ЭтоИстина();
|
||||
ТекстовыйДокумент = Новый ТекстовыйДокумент();
|
||||
ТекстовыйДокумент.Записать(ФайлБезЭкспортныхМетодов.ПолноеИмя, КодировкаТекста.UTF8);
|
||||
Результат = ОбъектСценария.ОбработатьФайл(
|
||||
ФайлБезЭкспортныхМетодов,
|
||||
ДополнительныеПараметры.ТекущийКаталогИсходныхФайлов,
|
||||
ДополнительныеПараметры);
|
||||
Сообщение = СтрШаблон("Обработался модуль без экспортных методов '%1'", ФайлБезЭкспортныхМетодов.ПолноеИмя);
|
||||
Ожидаем.Что(Результат, Сообщение).ЭтоЛожь();
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
Ожидаем.Что(ПодходящийФайл.Существует(), СтрШаблон("Отсутствует файл-пример '%1'", ПодходящийФайл.ПолноеИмя)).ЭтоИстина();
|
||||
КаталогНеизвестногоОбъектаМетаданных = ОбъединитьПути(КаталогИсходников, "НеизвестныйТипМетаданных", "ИмяОбъекта");
|
||||
СоздатьКаталог(КаталогНеизвестногоОбъектаМетаданных);
|
||||
ПутьФайлаНеизвестногоОбъектаМетаданных = ОбъединитьПути(КаталогНеизвестногоОбъектаМетаданных, "Module.bsl");
|
||||
КопироватьФайл(ПодходящийФайл.ПолноеИмя, ПутьФайлаНеизвестногоОбъектаМетаданных);
|
||||
ФайлНеизвестногоОбъектаМетаданных = Новый Файл(ПутьФайлаНеизвестногоОбъектаМетаданных);
|
||||
Результат = ОбъектСценария.ОбработатьФайл(
|
||||
ФайлНеизвестногоОбъектаМетаданных,
|
||||
ДополнительныеПараметры.ТекущийКаталогИсходныхФайлов,
|
||||
ДополнительныеПараметры);
|
||||
Сообщение = СтрШаблон("Обработался файл неизвестного объекта метаданных '%1'", ФайлНеизвестногоОбъектаМетаданных.ПолноеИмя);
|
||||
Ожидаем.Что(Результат, Сообщение).ЭтоЛожь();
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
ФайлНеподходящегоТипаМетаданных = Новый Файл(ОбъединитьПути(КаталогИсходников, "CommonForms", "ОбщаяФорма1", "Module.bsl"));
|
||||
Ожидаем.Что(ФайлНеподходящегоТипаМетаданных.Существует(), СтрШаблон("Отсутствует файл-пример '%1'", ФайлНеподходящегоТипаМетаданных.ПолноеИмя)).ЭтоИстина();
|
||||
Результат = ОбъектСценария.ОбработатьФайл(
|
||||
ФайлНеподходящегоТипаМетаданных,
|
||||
ДополнительныеПараметры.ТекущийКаталогИсходныхФайлов,
|
||||
ДополнительныеПараметры);
|
||||
Сообщение = СтрШаблон("Обработался файл неподходящего объекта метаданных '%1'", ФайлНеизвестногоОбъектаМетаданных.ПолноеИмя);
|
||||
Ожидаем.Что(Результат, Сообщение).ЭтоЛожь();
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// Контроль корректности проведенных проверок.
|
||||
Результат = ОбъектСценария.ОбработатьФайл(
|
||||
ПодходящийФайл,
|
||||
ДополнительныеПараметры.ТекущийКаталогИсходныхФайлов,
|
||||
ДополнительныеПараметры);
|
||||
Сообщение = СтрШаблон("Не обработался подходящий файл '%1'", ПодходящийФайл.ПолноеИмя);
|
||||
Ожидаем.Что(Результат, Сообщение).ЭтоИстина();
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ТестДолжен_ПроверитьЧтоСценарийДобавлениеТестовВРасширениеДобавляетИДополняетМодулиТестов() Экспорт
|
||||
|
||||
// Подготовка "репозитория".
|
||||
КаталогРепозитория = МенеджерВременныхФайлов.СоздатьКаталог();
|
||||
ИспользоватьТестовуюНастройку(КаталогРепозитория, "v8configФорматEDT.json");
|
||||
ФС.КопироватьСодержимоеКаталога(ОбъединитьПути(КаталогТестовыхФикстур(), "cf-edt"), КаталогРепозитория);
|
||||
КаталогКонфигурации = ОбъединитьПути(КаталогРепозитория, "configuration");
|
||||
КаталогИсходников = ОбъединитьПути(КаталогКонфигурации, "src");
|
||||
КаталогТестов = ОбъединитьПути(КаталогРепозитория, "tests");
|
||||
|
||||
// Прогон сценария по всем файлам исходников.
|
||||
ОбъектСценария = ПолучитьСценарий("ДобавлениеТестовВРасширение.os");
|
||||
ДополнительныеПараметры = ПолучитьДополнительныеНастройки(КаталогРепозитория, КаталогКонфигурации);
|
||||
ФайлыПроекта = НайтиФайлы(ОбъединитьПути(КаталогКонфигурации, "src"), ПолучитьМаскуВсеФайлы(), Истина);
|
||||
Для каждого ФайлПроекта Из ФайлыПроекта Цикл
|
||||
|
||||
Если ФайлПроекта.ЭтоКаталог() Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
Результат = ОбъектСценария.ОбработатьФайл(ФайлПроекта, ДополнительныеПараметры.ТекущийКаталогИсходныхФайлов, ДополнительныеПараметры);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
// Проверка модулей тестов.
|
||||
ФайлОписанияКонфигурацииТестов = Новый Файл(ОбъединитьПути(КаталогТестов, "src", "Configuration", "Configuration.mdo"));
|
||||
ОписаниеКонфигурацииТестов = ФайловыеОперации.ПрочитатьТекстФайла(ФайлОписанияКонфигурацииТестов.ПолноеИмя);
|
||||
КаталогОбщихМодулейТестов = ОбъединитьПути(КаталогТестов, "src", "CommonModules");
|
||||
Для каждого Кейс Из КейсыПроверкиДобавленияМодулейТестов() Цикл
|
||||
|
||||
// Наличие модуля в исходниках.
|
||||
ФайлИсходников = Новый Файл(ОбъединитьПути(КаталогИсходников, Кейс.КаталогТипаМетаданных, Кейс.ИмяМетаданных, Кейс.ИмяМодуляМетаданных));
|
||||
Сообщение = СтрШаблон("Не найден файл исходников '%1'", ФайлИсходников.ПолноеИмя);
|
||||
Ожидаем.Что(ФайлИсходников.Существует(), Сообщение).ЭтоИстина();
|
||||
|
||||
// Описание конфигурации.
|
||||
СтрокаПоиска = СтрШаблон("<commonModules>CommonModule.%1</commonModules>", Кейс.ИмяТестовогоМодуля);
|
||||
ЧислоВхождений = СтрЧислоВхождений(ОписаниеКонфигурацииТестов, СтрокаПоиска);
|
||||
Сообщение = СтрШаблон(
|
||||
"Неправильное количество упоминаний модуля '%1' в описании конфигурации:
|
||||
|%2",
|
||||
Кейс.ИмяТестовогоМодуля, ОписаниеКонфигурацииТестов);
|
||||
Ожидаем.Что(ЧислоВхождений, Сообщение).Равно(1);
|
||||
|
||||
// Описание модуля тестов.
|
||||
ФайлОписанияТеста = Новый Файл(ОбъединитьПути(КаталогОбщихМодулейТестов, Кейс.ИмяТестовогоМодуля, Кейс.ИмяТестовогоМодуля + ".mdo"));
|
||||
Сообщение = СтрШаблон("Не создано описание модуля тестов '%1'", ФайлОписанияТеста.ПолноеИмя);
|
||||
Ожидаем.Что(ФайлОписанияТеста.Существует(), Сообщение).ЭтоИстина();
|
||||
ОписаниеТеста = ФайловыеОперации.ПрочитатьТекстФайла(ФайлОписанияТеста.ПолноеИмя);
|
||||
// Клиент.
|
||||
СтрокаПоиска = СтрШаблон("<clientManagedApplication>%1</clientManagedApplication>", XMLСтрока(Кейс.Клиент));
|
||||
ЧислоВхождений = СтрЧислоВхождений(ОписаниеТеста, СтрокаПоиска);
|
||||
ЧислоВхожденийПравильное = ?(Кейс.Клиент, ЧислоВхождений = 1, ЧислоВхождений <= 1);
|
||||
Сообщение = СтрШаблон(
|
||||
"Неправильное количество упоминаний контекста 'Клиент = %1' в описании модуля тестов '%2':
|
||||
|%3",
|
||||
Кейс.Клиент, ФайлОписанияТеста.ПолноеИмя, ОписаниеТеста);
|
||||
Ожидаем.Что(ЧислоВхожденийПравильное, Сообщение).ЭтоИстина();
|
||||
// Сервер.
|
||||
СтрокаПоиска = СтрШаблон("<server>%1</server>", XMLСтрока(Кейс.Сервер));
|
||||
ЧислоВхождений = СтрЧислоВхождений(ОписаниеТеста, СтрокаПоиска);
|
||||
ЧислоВхожденийПравильное = ?(Кейс.Сервер, ЧислоВхождений = 1, ЧислоВхождений <= 1);
|
||||
Сообщение = СтрШаблон(
|
||||
"Неправильное количество упоминаний контекста 'Сервер = %1' в описании модуля тестов '%2':
|
||||
|%3",
|
||||
Кейс.Сервер, ФайлОписанияТеста.ПолноеИмя, ОписаниеТеста);
|
||||
Ожидаем.Что(ЧислоВхожденийПравильное, Сообщение).ЭтоИстина();
|
||||
|
||||
// Модуль тестов.
|
||||
ФайлТеста = Новый Файл(ОбъединитьПути(КаталогОбщихМодулейТестов, Кейс.ИмяТестовогоМодуля, "Module.bsl"));
|
||||
Сообщение = СтрШаблон("Не создан модуль тестов '%1'", ФайлТеста.ПолноеИмя);
|
||||
Ожидаем.Что(ФайлТеста.Существует(), Сообщение).ЭтоИстина();
|
||||
ТекстТеста = ФайловыеОперации.ПрочитатьТекстФайла(ФайлТеста.ПолноеИмя);
|
||||
// Наличие исполняемого сценария.
|
||||
ИмяМетодаМодуля = ?(Кейс.Глобальный, "Глобальный", "") + Кейс.ИмяМетодаМодуля;
|
||||
СтрокаПоиска = СтрШаблон("ИсполняемыеСценарии.Добавить(""%1"");", ИмяМетодаМодуля);
|
||||
ЧислоВхождений = СтрЧислоВхождений(ТекстТеста, СтрокаПоиска);
|
||||
Сообщение = СтрШаблон(
|
||||
"Неправильное количество упоминаний исполняемого сценария '%1' в модуле тестов '%2':
|
||||
|%3",
|
||||
ИмяМетодаМодуля, ФайлТеста.ПолноеИмя, ТекстТеста);
|
||||
Ожидаем.Что(ЧислоВхождений, Сообщение).Равно(1);
|
||||
// Наличие метода.
|
||||
СтрокаПоиска = СтрШаблон("Процедура %1(", ИмяМетодаМодуля);
|
||||
ЧислоВхождений = СтрЧислоВхождений(ТекстТеста, СтрокаПоиска);
|
||||
Сообщение = СтрШаблон(
|
||||
"Неправильное количество упоминаний метода '%1' в модуле тестов '%2':
|
||||
|%3",
|
||||
ИмяМетодаМодуля, ФайлТеста.ПолноеИмя, ТекстТеста);
|
||||
Ожидаем.Что(ЧислоВхождений, Сообщение).Равно(1);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область Служебные
|
||||
|
||||
Процедура ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, ТекстИсключения)
|
||||
|
||||
ДополнительныеНастройки = ПолучитьДополнительныеНастройки();
|
||||
ПараметрыМетода = Новый Массив;
|
||||
|
||||
ПараметрыМетода.Добавить(Файл);
|
||||
ПараметрыМетода.Добавить(Файл.Путь);
|
||||
ПараметрыМетода.Добавить(ДополнительныеНастройки);
|
||||
|
||||
Ожидаем.Что(ОбъектСценария).Метод("ОбработатьФайл", ПараметрыМетода).ВыбрасываетИсключение(ТекстИсключения);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура СценарийИмеетМетод(ОбъектСценария, ИмяМетода)
|
||||
|
||||
Рефлектор = Новый Рефлектор;
|
||||
ЕстьМетод = Рефлектор.МетодСуществует(ОбъектСценария, ИмяМетода);
|
||||
|
||||
Ожидаем.Что(ЕстьМетод, Истина).ЭтоИстина();
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ПолучитьСценарий(ИмяСценария)
|
||||
|
||||
Сценарий = ОбъединитьПути(КаталогИсходников(), "src", "СценарииОбработки", ИмяСценария);
|
||||
ОбъектСценария = ЗагрузитьСценарий(Сценарий);
|
||||
|
||||
Возврат ОбъектСценария;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура СценарийВозвращаетНастройки(ОбъектСценария, ИмяНастройки)
|
||||
|
||||
Рефлектор = Новый Рефлектор;
|
||||
СтруктураНастроек = Рефлектор.ВызватьМетод(ОбъектСценария, НазваниеМетодаНастроек());
|
||||
|
||||
Утверждения.ПроверитьРавенство(СтруктураНастроек.ИмяСценария, ИмяНастройки);
|
||||
Утверждения.ПроверитьРавенство(ТипЗнч(СтруктураНастроек.Настройка), Тип("Соответствие"));
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ВключитьПоказОтладки()
|
||||
Лог.УстановитьУровень(УровниЛога.Отладка);
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ВыключитьПоказОтладки()
|
||||
Лог.УстановитьУровень(УровниЛога.Информация);
|
||||
КонецПроцедуры
|
||||
|
||||
Функция КаталогТестовыхФикстур()
|
||||
Возврат ОбъединитьПути(КаталогИсходников(), "tests\fixtures");
|
||||
КонецФункции
|
||||
|
||||
Функция Фикстура(ПутьВКаталогеФикстур)
|
||||
Возврат ОбъединитьПути(КаталогТестовыхФикстур(), ПутьВКаталогеФикстур);
|
||||
КонецФункции
|
||||
|
||||
Функция КаталогИсходников()
|
||||
Возврат ОбъединитьПути(ТекущийСценарий().Каталог, "..");
|
||||
КонецФункции
|
||||
|
||||
Функция НазваниеМетодаНастроек()
|
||||
|
||||
Возврат "ПолучитьСтандартныеНастройкиСценария";
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьДополнительныеНастройки(Знач КаталогРепозитория = Неопределено, Знач ТекущийКаталогИсходныхФайлов = Неопределено)
|
||||
|
||||
Если КаталогРепозитория = Неопределено Тогда
|
||||
КаталогРепозитория = ТекущийКаталог();
|
||||
КонецЕсли;
|
||||
|
||||
УправлениеНастройками = МенеджерНастроек.НастройкиРепозитория(КаталогРепозитория, Ложь);
|
||||
Настройка = МенеджерНастроек.НастройкиПроекта().Получить("НастройкиСценариев");
|
||||
|
||||
ДополнительныеНастройки = СценарииОбработки.ПолучитьСтандартныеПараметрыОбработки();
|
||||
ДополнительныеНастройки.Лог = Лог;
|
||||
ДополнительныеНастройки.КаталогРепозитория = КаталогРепозитория;
|
||||
ДополнительныеНастройки.ТекущийКаталогИсходныхФайлов = ТекущийКаталогИсходныхФайлов;
|
||||
ДополнительныеНастройки.Настройки = Настройка;
|
||||
|
||||
Возврат ДополнительныеНастройки;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПодготовитьИзменяемыйТестовыйФайл(Знач ИмяТестовогоФайла)
|
||||
|
||||
ПутьКТесту = ОбъединитьПути(КаталогТестовыхФикстур(), ИмяТестовогоФайла);
|
||||
ПутьКФайлу = МенеджерВременныхФайлов.СоздатьФайл(ИмяТестовогоФайла);
|
||||
КопироватьФайл(ПутьКТесту, ПутьКФайлу);
|
||||
Файл = Новый Файл(ПутьКФайлу);
|
||||
Возврат Файл;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ИспользоватьТестовуюНастройку(КаталогРепозитория, ИмяФайлаНастройки)
|
||||
|
||||
КопироватьФайл(
|
||||
ОбъединитьПути(КаталогТестовыхФикстур(), "Настройки", ИмяФайлаНастройки),
|
||||
ОбъединитьПути(КаталогРепозитория, "v8config.json"));
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция КейсыПроверкиДобавленияМодулейТестов()
|
||||
|
||||
Кейсы = Новый ТаблицаЗначений();
|
||||
Кейсы.Колонки.Добавить("КаталогТипаМетаданных");
|
||||
Кейсы.Колонки.Добавить("ИмяМетаданных");
|
||||
Кейсы.Колонки.Добавить("ИмяМодуляМетаданных");
|
||||
Кейсы.Колонки.Добавить("ИмяМетодаМодуля");
|
||||
Кейсы.Колонки.Добавить("ИмяТестовогоМодуля");
|
||||
Кейсы.Колонки.Добавить("Клиент");
|
||||
Кейсы.Колонки.Добавить("Сервер");
|
||||
Кейсы.Колонки.Добавить("Глобальный");
|
||||
|
||||
ДобавитьКейсПроверкиТестов(Кейсы, "AccountingRegisters", "РегистрБухгалтерии1", "ManagerModule.bsl", "ПроцедураЭкспортнаяБезПараметров", "РБ_РегистрБухгалтерии1_ММ", Ложь, Истина);
|
||||
ДобавитьКейсПроверкиТестов(Кейсы, "AccountingRegisters", "РегистрБухгалтерии1", "RecordSetModule.bsl", "ПроцедураЭкспортнаяБезПараметров", "РБ_РегистрБухгалтерии1_МНЗ", Ложь, Истина);
|
||||
|
||||
ДобавитьКейсПроверкиТестов(Кейсы, "AccumulationRegisters", "РегистрНакопления1", "ManagerModule.bsl", "ПроцедураЭкспортнаяБезПараметров", "РН_РегистрНакопления1_ММ", Ложь, Истина);
|
||||
ДобавитьКейсПроверкиТестов(Кейсы, "AccumulationRegisters", "РегистрНакопления1", "RecordSetModule.bsl", "ПроцедураЭкспортнаяБезПараметров", "РН_РегистрНакопления1_МНЗ", Ложь, Истина);
|
||||
|
||||
ДобавитьКейсПроверкиТестов(Кейсы, "BusinessProcesses", "БизнесПроцесс1", "ManagerModule.bsl", "ПроцедураЭкспортнаяБезПараметров", "БП_БизнесПроцесс1_ММ", Ложь, Истина);
|
||||
ДобавитьКейсПроверкиТестов(Кейсы, "BusinessProcesses", "БизнесПроцесс1", "ObjectModule.bsl", "ПроцедураЭкспортнаяБезПараметров", "БП_БизнесПроцесс1_МО", Ложь, Истина);
|
||||
|
||||
ДобавитьКейсПроверкиТестов(Кейсы, "CalculationRegisters", "РегистрРасчета1", "ManagerModule.bsl", "ПроцедураЭкспортнаяБезПараметров", "РР_РегистрРасчета1_ММ", Ложь, Истина);
|
||||
ДобавитьКейсПроверкиТестов(Кейсы, "CalculationRegisters", "РегистрРасчета1", "RecordSetModule.bsl", "ПроцедураЭкспортнаяБезПараметров", "РР_РегистрРасчета1_МНЗ", Ложь, Истина);
|
||||
|
||||
ДобавитьКейсПроверкиТестов(Кейсы, "Catalogs", "Справочник1", "ManagerModule.bsl", "ПроцедураЭкспортнаяБезПараметров", "Спр_Справочник1_ММ", Ложь, Истина);
|
||||
ДобавитьКейсПроверкиТестов(Кейсы, "Catalogs", "Справочник1", "ObjectModule.bsl", "ПроцедураЭкспортнаяБезПараметров", "Спр_Справочник1_МО", Ложь, Истина);
|
||||
|
||||
ДобавитьКейсПроверкиТестов(Кейсы, "ChartsOfAccounts", "ПланСчетов1", "ManagerModule.bsl", "ПроцедураЭкспортнаяБезПараметров", "ПС_ПланСчетов1_ММ", Ложь, Истина);
|
||||
ДобавитьКейсПроверкиТестов(Кейсы, "ChartsOfAccounts", "ПланСчетов1", "ObjectModule.bsl", "ПроцедураЭкспортнаяБезПараметров", "ПС_ПланСчетов1_МО", Ложь, Истина);
|
||||
|
||||
ДобавитьКейсПроверкиТестов(Кейсы, "ChartsOfCalculationTypes", "ПланВидовРасчета1", "ManagerModule.bsl", "ПроцедураЭкспортнаяБезПараметров", "ПВР_ПланВидовРасчета1_ММ", Ложь, Истина);
|
||||
ДобавитьКейсПроверкиТестов(Кейсы, "ChartsOfCalculationTypes", "ПланВидовРасчета1", "ObjectModule.bsl", "ПроцедураЭкспортнаяБезПараметров", "ПВР_ПланВидовРасчета1_МО", Ложь, Истина);
|
||||
|
||||
ДобавитьКейсПроверкиТестов(Кейсы, "ChartsOfCharacteristicTypes", "ПланВидовХарактеристик1", "ManagerModule.bsl", "ПроцедураЭкспортнаяБезПараметров", "ПВХ_ПланВидовХарактеристик1_ММ", Ложь, Истина);
|
||||
ДобавитьКейсПроверкиТестов(Кейсы, "ChartsOfCharacteristicTypes", "ПланВидовХарактеристик1", "ObjectModule.bsl", "ПроцедураЭкспортнаяБезПараметров", "ПВХ_ПланВидовХарактеристик1_МО", Ложь, Истина);
|
||||
|
||||
ДобавитьКейсПроверкиТестов(Кейсы, "CommonModules", "ОбщийМодульКлиентЧастичноПокрытый", "Module.bsl", "ПокрытаяПроцедураЭкспортнаяБезПараметров", "ОМ_ОбщийМодульКлиентЧастичноПокрытый", Истина, Ложь); // Уже есть.
|
||||
ДобавитьКейсПроверкиТестов(Кейсы, "CommonModules", "ОбщийМодульКлиентЧастичноПокрытый", "Module.bsl", "НепокрытаяФункцияЭкспортнаяБезПараметров", "ОМ_ОбщийМодульКлиентЧастичноПокрытый", Истина, Ложь);
|
||||
ДобавитьКейсПроверкиТестов(Кейсы, "CommonModules", "ОбщийМодульСерверГлобальныйЧастичноПокрытый", "Module.bsl", "глНепокрытаяПроцедураЭкспортнаяБезПараметров", "ОМ_ОбщийМодульСерверГлобальныйЧастичноПокрытый", Ложь, Истина, Истина);
|
||||
ДобавитьКейсПроверкиТестов(Кейсы, "CommonModules", "ОбщийМодульСерверГлобальныйЧастичноПокрытый", "Module.bsl", "глПокрытаяФункцияЭкспортнаяБезПараметров", "ОМ_ОбщийМодульСерверГлобальныйЧастичноПокрытый", Ложь, Истина, Истина); // Уже есть.
|
||||
|
||||
ДобавитьКейсПроверкиТестов(Кейсы, "CommonModules", "ОбщийМодульКлиентСерверГлобальный", "Module.bsl", "глПроцедураЭкспортнаяБезПараметров", "ОМ_ОбщийМодульКлиентСерверГлобальный", Истина, Истина, Истина);
|
||||
ДобавитьКейсПроверкиТестов(Кейсы, "CommonModules", "ОбщийМодульКлиентСерверГлобальный", "Module.bsl", "глПроцедураЭкспортнаяСПараметрами", "ОМ_ОбщийМодульКлиентСерверГлобальный", Истина, Истина, Истина);
|
||||
ДобавитьКейсПроверкиТестов(Кейсы, "CommonModules", "ОбщийМодульКлиентСерверГлобальный", "Module.bsl", "глФункцияЭкспортнаяБезПараметров", "ОМ_ОбщийМодульКлиентСерверГлобальный", Истина, Истина, Истина);
|
||||
ДобавитьКейсПроверкиТестов(Кейсы, "CommonModules", "ОбщийМодульКлиентСерверГлобальный", "Module.bsl", "глФункцияЭкспортнаяСПараметрами", "ОМ_ОбщийМодульКлиентСерверГлобальный", Истина, Истина, Истина);
|
||||
ДобавитьКейсПроверкиТестов(Кейсы, "CommonModules", "ОбщийМодульСервер", "Module.bsl", "ПроцедураЭкспортнаяБезПараметров", "ОМ_ОбщийМодульСервер", Ложь, Истина);
|
||||
|
||||
ДобавитьКейсПроверкиТестов(Кейсы, "DataProcessors", "Обработка1", "ManagerModule.bsl", "ПроцедураЭкспортнаяБезПараметров", "Обр_Обработка1_ММ", Ложь, Истина);
|
||||
ДобавитьКейсПроверкиТестов(Кейсы, "DataProcessors", "Обработка1", "ObjectModule.bsl", "ПроцедураЭкспортнаяБезПараметров", "Обр_Обработка1_МО", Ложь, Истина);
|
||||
|
||||
ДобавитьКейсПроверкиТестов(Кейсы, "Documents", "Документ1", "ManagerModule.bsl", "ПроцедураЭкспортнаяБезПараметров", "Док_Документ1_ММ", Ложь, Истина);
|
||||
ДобавитьКейсПроверкиТестов(Кейсы, "Documents", "Документ1", "ObjectModule.bsl", "ПроцедураЭкспортнаяБезПараметров", "Док_Документ1_МО", Ложь, Истина);
|
||||
|
||||
ДобавитьКейсПроверкиТестов(Кейсы, "Enums", "Перечисление1", "ManagerModule.bsl", "ПроцедураЭкспортнаяБезПараметров", "Пер_Перечисление1_ММ", Ложь, Истина);
|
||||
|
||||
ДобавитьКейсПроверкиТестов(Кейсы, "ExchangePlans", "ПланОбмена1", "ManagerModule.bsl", "ПроцедураЭкспортнаяБезПараметров", "ПО_ПланОбмена1_ММ", Ложь, Истина);
|
||||
ДобавитьКейсПроверкиТестов(Кейсы, "ExchangePlans", "ПланОбмена1", "ObjectModule.bsl", "ПроцедураЭкспортнаяБезПараметров", "ПО_ПланОбмена1_МО", Ложь, Истина);
|
||||
|
||||
ДобавитьКейсПроверкиТестов(Кейсы, "InformationRegisters", "РегистрСведений1", "ManagerModule.bsl", "ПроцедураЭкспортнаяБезПараметров", "РС_РегистрСведений1_ММ", Ложь, Истина);
|
||||
ДобавитьКейсПроверкиТестов(Кейсы, "InformationRegisters", "РегистрСведений1", "RecordSetModule.bsl", "ПроцедураЭкспортнаяБезПараметров", "РС_РегистрСведений1_МНЗ", Ложь, Истина);
|
||||
|
||||
ДобавитьКейсПроверкиТестов(Кейсы, "Reports", "Отчет1", "ManagerModule.bsl", "ПроцедураЭкспортнаяБезПараметров", "Отч_Отчет1_ММ", Ложь, Истина);
|
||||
ДобавитьКейсПроверкиТестов(Кейсы, "Reports", "Отчет1", "ObjectModule.bsl", "ПроцедураЭкспортнаяБезПараметров", "Отч_Отчет1_МО", Ложь, Истина);
|
||||
|
||||
ДобавитьКейсПроверкиТестов(Кейсы, "Tasks", "Задача1", "ManagerModule.bsl", "ПроцедураЭкспортнаяБезПараметров", "Зад_Задача1_ММ", Ложь, Истина);
|
||||
ДобавитьКейсПроверкиТестов(Кейсы, "Tasks", "Задача1", "ObjectModule.bsl", "ПроцедураЭкспортнаяБезПараметров", "Зад_Задача1_МО", Ложь, Истина);
|
||||
|
||||
Возврат Кейсы;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ДобавитьКейсПроверкиТестов(Кейсы, КаталогТипаМетаданных, ИмяМетаданных, ИмяМодуляМетаданных, ИмяМетодаМодуля, ИмяТестовогоМодуля, Клиент, Сервер, Глобальный = Ложь)
|
||||
|
||||
Кейс = Кейсы.Добавить();
|
||||
Кейс.КаталогТипаМетаданных = КаталогТипаМетаданных;
|
||||
Кейс.ИмяМетаданных = ИмяМетаданных;
|
||||
Кейс.ИмяМодуляМетаданных = ИмяМодуляМетаданных;
|
||||
Кейс.ИмяМетодаМодуля = ИмяМетодаМодуля;
|
||||
Кейс.ИмяТестовогоМодуля = ИмяТестовогоМодуля;
|
||||
Кейс.Клиент = Клиент;
|
||||
Кейс.Сервер = Сервер;
|
||||
Кейс.Глобальный = Глобальный;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
@ -1,363 +0,0 @@
|
||||
#Использовать asserts
|
||||
#Использовать logos
|
||||
#Использовать tempfiles
|
||||
|
||||
Перем юТест;
|
||||
Перем Лог;
|
||||
Перем МенеджерВременныхФайлов;
|
||||
|
||||
#Область ПрограммныйИнтерфейс
|
||||
// Основная точка входа
|
||||
Функция ПолучитьСписокТестов(ЮнитТестирование) Экспорт
|
||||
|
||||
юТест = ЮнитТестирование;
|
||||
|
||||
ВсеТесты = Новый Массив;
|
||||
|
||||
ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийПроверкиДублейПроцедурВызываетИсключение");
|
||||
ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийПроверкиДублейПроцедурОбработаетФайл");
|
||||
ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийПроверкиДублейПроцедурНеОбработаетНесуществующийФайл");
|
||||
ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийПроверкиДублейПроцедурНеОбработаетНеИсходник");
|
||||
ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийОтключенияПолнотекстовогоПоискаИмеетМетодПолученияНастроек");
|
||||
ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийРазбораОтчетовОбработокРасширенийИмеетМетодПолученияНастроек");
|
||||
ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийОтключенияПолнотекстовогоПоискаВозвращаетНастройки");
|
||||
ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийРазбораОтчетовОбработокРасширенийВозвращаетНастройки");
|
||||
ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийИсправлениеНеКаноническогоНаписанияИсправляетФайл");
|
||||
ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийИсправлениеНеКаноническогоНаписанияНеИндексируетНеизмененные");
|
||||
ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийИсправлениеНеКаноническогоНаписанияИсправляетТолькоНаписание");
|
||||
ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСинхронизацияОбъектовМетаданныхВызываетИсключение");
|
||||
ВсеТесты.Добавить("ТестДолжен_ПроверитьЗагрузкуСценариевПоИмени");
|
||||
|
||||
Возврат ВсеТесты;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ПередЗапускомТеста() Экспорт
|
||||
|
||||
ВремТестер = Новый Тестер;
|
||||
Лог = Логирование.ПолучитьЛог(ВремТестер.ИмяЛога());
|
||||
|
||||
ВключитьПоказОтладки();
|
||||
|
||||
МенеджерВременныхФайлов = Новый МенеджерВременныхФайлов;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПослеЗапускаТеста() Экспорт
|
||||
|
||||
МенеджерВременныхФайлов.Удалить();
|
||||
МенеджерВременныхФайлов = Неопределено;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#Область ИсправлениеНеКаноническогоНаписания
|
||||
|
||||
Процедура ТестДолжен_ПроверитьЧтоСценарийИсправлениеНеКаноническогоНаписанияИсправляетФайл() Экспорт
|
||||
|
||||
ОбъектСценария = ПолучитьСценарий("ИсправлениеНеКаноническогоНаписания.os");
|
||||
ИмяФайла = "ИсправлениеНеКаноническогоНаписания.bsl";
|
||||
|
||||
Файл = ПодготовитьИзменяемыйТестовыйФайл(ИмяФайла);
|
||||
|
||||
Результат = ОбъектСценария.ОбработатьФайл(Файл, Файл.Путь, ПолучитьДополнительныеНастройки());
|
||||
Ожидаем.Что(Результат, Истина).ЭтоИстина();
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ТестДолжен_ПроверитьЧтоСценарийИсправлениеНеКаноническогоНаписанияИсправляетТолькоНаписание() Экспорт
|
||||
|
||||
ОбъектСценария = ПолучитьСценарий("ИсправлениеНеКаноническогоНаписания.os");
|
||||
ИмяФайла = "ИсправлениеНеКаноническогоНаписания.bsl";
|
||||
|
||||
Файл = ПодготовитьИзменяемыйТестовыйФайл(ИмяФайла);
|
||||
ТекстФайлаДо = ФайловыеОперации.ПрочитатьТекстФайла(Файл.ПолноеИмя);
|
||||
Результат = ОбъектСценария.ОбработатьФайл(Файл, Файл.Путь, ПолучитьДополнительныеНастройки());
|
||||
ТекстФайлаПосле = ФайловыеОперации.ПрочитатьТекстФайла(Файл.ПолноеИмя);
|
||||
|
||||
// текст изменен
|
||||
Ожидаем.Что(ТекстФайлаДо, Истина).Не_().Равно(ТекстФайлаПосле);
|
||||
// текст тождественен
|
||||
Ожидаем.Что(Врег(ТекстФайлаДо), Истина).Равно(Врег(ТекстФайлаПосле));
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ТестДолжен_ПроверитьЧтоСценарийИсправлениеНеКаноническогоНаписанияНеИндексируетНеизмененные() Экспорт
|
||||
|
||||
ОбъектСценария = ПолучитьСценарий("ИсправлениеНеКаноническогоНаписания.os");
|
||||
ИмяФайла = "ИсправлениеНеКаноническогоНаписания.bsl";
|
||||
|
||||
Файл = ПодготовитьИзменяемыйТестовыйФайл(ИмяФайла);
|
||||
|
||||
Результат = ОбъектСценария.ОбработатьФайл(Файл, Файл.Путь, ПолучитьДополнительныеНастройки());
|
||||
ДопНастройки = ПолучитьДополнительныеНастройки();
|
||||
|
||||
Результат = ОбъектСценария.ОбработатьФайл(Файл, Файл.Путь, ДопНастройки);
|
||||
Ожидаем.Что(ДопНастройки.ИзмененныеКаталоги.Количество(), Истина).Равно(0);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ОтключениеПолнотекстовогоПоиска
|
||||
Процедура ТестДолжен_ПроверитьЧтоСценарийОтключенияПолнотекстовогоПоискаИмеетМетодПолученияНастроек() Экспорт
|
||||
|
||||
ОбъектСценария = ПолучитьСценарий("ОтключениеПолнотекстовогоПоиска.os");
|
||||
|
||||
СценарийИмеетМетод(ОбъектСценария, НазваниеМетодаНастроек());
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ТестДолжен_ПроверитьЧтоСценарийОтключенияПолнотекстовогоПоискаВозвращаетНастройки() Экспорт
|
||||
|
||||
ОбъектСценария = ПолучитьСценарий("ОтключениеПолнотекстовогоПоиска.os");
|
||||
|
||||
СценарийВозвращаетНастройки(ОбъектСценария, "ОтключениеПолнотекстовогоПоиска");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область РазборОтчетовОбработокРасширений
|
||||
Процедура ТестДолжен_ПроверитьЧтоСценарийРазбораОтчетовОбработокРасширенийИмеетМетодПолученияНастроек() Экспорт
|
||||
|
||||
ОбъектСценария = ПолучитьСценарий("РазборОтчетовОбработокРасширений.os");
|
||||
|
||||
СценарийИмеетМетод(ОбъектСценария, НазваниеМетодаНастроек());
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ТестДолжен_ПроверитьЧтоСценарийРазбораОтчетовОбработокРасширенийВозвращаетНастройки() Экспорт
|
||||
|
||||
ОбъектСценария = ПолучитьСценарий("РазборОтчетовОбработокРасширений.os");
|
||||
|
||||
СценарийВозвращаетНастройки(ОбъектСценария, "РазборОтчетовОбработокРасширений");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ПроверкаДублейПроцедурИФункций
|
||||
Процедура ТестДолжен_ПроверитьЧтоСценарийПроверкиДублейПроцедурВызываетИсключение() Экспорт
|
||||
|
||||
ОбъектСценария = ПолучитьСценарий("ПроверкаДублейПроцедурИФункций.os");
|
||||
Файл = Новый Файл(ОбъединитьПути(КаталогТестовыхФикстур(), "ПроверкаДублейПроцедурНегативныйТест.bsl"));
|
||||
СПараметрами = Новый Файл(ОбъединитьПути(КаталогТестовыхФикстур(), "ПроверкаДублейПроцедурСПараметрами.bsl"));
|
||||
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "обнаружены неуникальные имена методов");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, СПараметрами, "обнаружены неуникальные имена методов");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ТестДолжен_ПроверитьЧтоСценарийПроверкиДублейПроцедурОбработаетФайл() Экспорт
|
||||
|
||||
Файл = Новый Файл(ОбъединитьПути(КаталогТестовыхФикстур(), "ПроверкаДублейПроцедурПоложительныйТест.bsl"));
|
||||
ОбъектСценария = ПолучитьСценарий("ПроверкаДублейПроцедурИФункций.os");
|
||||
Результат = ОбъектСценария.ОбработатьФайл(Файл, Файл.Путь, ПолучитьДополнительныеНастройки());
|
||||
|
||||
Ожидаем.Что(Результат, Истина).ЭтоИстина();
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ТестДолжен_ПроверитьЧтоСценарийПроверкиДублейПроцедурНеОбработаетНесуществующийФайл() Экспорт
|
||||
|
||||
Файл = Новый Файл(ПолучитьИмяВременногоФайла("bsl"));
|
||||
ОбъектСценария = ПолучитьСценарий("ПроверкаДублейПроцедурИФункций.os");
|
||||
Результат = ОбъектСценария.ОбработатьФайл(Файл, Файл.Путь, ПолучитьДополнительныеНастройки());
|
||||
|
||||
Ожидаем.Что(Результат, Истина).ЭтоЛожь();
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ТестДолжен_ПроверитьЧтоСценарийПроверкиДублейПроцедурНеОбработаетНеИсходник() Экспорт
|
||||
|
||||
Файл = Новый Файл(МенеджерВременныхФайлов.СоздатьФайл("xml"));
|
||||
ОбъектСценария = ПолучитьСценарий("ПроверкаДублейПроцедурИФункций.os");
|
||||
Результат = ОбъектСценария.ОбработатьФайл(Файл, Файл.Путь, ПолучитьДополнительныеНастройки());
|
||||
|
||||
Ожидаем.Что(Результат, Истина).ЭтоЛожь();
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ТестДолжен_ПроверитьЗагрузкуСценариевПоИмени() Экспорт
|
||||
|
||||
Файл = Новый Файл(МенеджерВременныхФайлов.СоздатьФайл("bsl"));
|
||||
|
||||
Имена = Новый Массив;
|
||||
|
||||
Имена.Добавить("ПроверкаДублейПроцедурИФункций");
|
||||
|
||||
Сценарии = СценарииОбработки.Загрузить(Файл.Путь, "", Имена);
|
||||
Ожидаем.Что(Сценарии.Количество(), "Сценарий не получен").Равно(1);
|
||||
|
||||
Имена.Добавить("ПроверкаДублейПроцедурИФункций");
|
||||
Сценарии = СценарииОбработки.Загрузить(Файл.Путь, "", Имена);
|
||||
Ожидаем.Что(Сценарии.Количество(), "Добавлен один и тот же сценарий").Равно(1);
|
||||
|
||||
Имена.Добавить("ПроверкаДублейПроцедурИФункций.os");
|
||||
Сценарии = СценарииОбработки.Загрузить(Файл.Путь, "", Имена);
|
||||
Ожидаем.Что(Сценарии.Количество(), "Добавлен один и тот же сценарий").Равно(1);
|
||||
|
||||
Имена.Добавить("РазборОтчетовОбработокРасширений.os");
|
||||
Сценарии = СценарииОбработки.Загрузить(Файл.Путь, "", Имена);
|
||||
Ожидаем.Что(Сценарии.Количество(), "С массивом загружаемых сценариев что-то пошло не так").Равно(2);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СинхронизацияОбъектовМетаданныхИФайлов
|
||||
Процедура ТестДолжен_ПроверитьЧтоСинхронизацияОбъектовМетаданныхВызываетИсключение() Экспорт
|
||||
|
||||
ОбъектСценария = ПолучитьСценарий("СинхронизацияОбъектовМетаданныхИФайлов.os");
|
||||
Файл = Новый Файл(ОбъединитьПути(КаталогТестовыхФикстур(), "СинхронизацияОбъектовМетаданныхИФайлов\Configuration.xml"));
|
||||
|
||||
// Переименование типа без переименования каталога
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Имя каталога Ancillary отличается от метаданного ancillary");
|
||||
// удаление типа без удаления файлов
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Необходимо удалить файлы");
|
||||
// базовые элементы
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствует каталог ChartsOfCharacteristicTypes");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствует каталог Catalogs");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствует каталог CommandGroups");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствует каталог CommonAttributes");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствует каталог CommonCommands");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствует каталог CommonForms");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствует каталог CommonModules");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствует каталог CommonPictures");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствует каталог CommonTemplates");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствует каталог Constants");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствует каталог DataProcessors");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствует каталог DefinedTypes");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствует каталог Documents");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствует каталог Enums");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствует каталог EventSubscriptions");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствует каталог FunctionalOptions");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствует каталог InformationRegisters");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствует каталог Languages");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствует каталог Reports");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствует каталог Roles");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствует каталог ScheduledJobs");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствует каталог SessionParameters");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствует каталог Subsystems");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствует каталог XDTOPackages");
|
||||
// элементы метаданых
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствуют файлы для Language.Русский");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствуют файлы для Subsystem.ПодсистемыБСП");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствуют файлы для CommonPicture.GUID");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствуют файлы для Role.АвтоТестированиеАдминистратор");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствуют файлы для SessionParameter.автоТестирование");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствуют файлы для CommonTemplate.HiddenStart");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствуют файлы для CommonModule.sFTPКлиентСервер");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствуют файлы для CommonAttribute.UID");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствуют файлы для XDTOPackage.bsp_ancillary");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствуют файлы для EventSubscription.ВерсионированиеПриЗаписи");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствуют файлы для ScheduledJob.РоботАвтоматическаяОбработкаИзмененийАдресногоКлассификатора");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствуют файлы для FunctionalOption.ВестиЖурналДействийПользователя");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствуют файлы для DefinedType.ТипUIDСтрока");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствуют файлы для CommonCommand.АудиторскийСлед");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствуют файлы для CommandGroup.Печать");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствуют файлы для Constant.АдресатыПолученияУведомленийОбИзмененияхВАлгоритмах");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствуют файлы для CommonForm.АвторизацияПользователя");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствуют файлы для Catalog.АдресаЭлектроннойПочты");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствуют файлы для Document.АттестацияРазработчика");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствуют файлы для Enum.ВариантХраненияФайлов");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствуют файлы для Report.анализЖурналаРегистрации");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствуют файлы для DataProcessor.активныеПользователи");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствуют файлы для InformationRegister.администраторыБаз");
|
||||
ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "Отсутствуют файлы для ChartOfCharacteristicTypes.РасширенныеХарактеристикиОбъектов");
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныйПрограммныйИнтерфейс
|
||||
Процедура ВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, ТекстИсключения)
|
||||
|
||||
ДополнительныеНастройки = ПолучитьДополнительныеНастройки();
|
||||
ПараметрыМетода = Новый Массив;
|
||||
|
||||
ПараметрыМетода.Добавить(Файл);
|
||||
ПараметрыМетода.Добавить(Файл.Путь);
|
||||
ПараметрыМетода.Добавить(ДополнительныеНастройки);
|
||||
|
||||
Ожидаем.Что(ОбъектСценария).Метод("ОбработатьФайл", ПараметрыМетода).ВыбрасываетИсключение(ТекстИсключения);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура СценарийИмеетМетод(ОбъектСценария, ИмяМетода)
|
||||
|
||||
Рефлектор = Новый Рефлектор;
|
||||
ЕстьМетод = Рефлектор.МетодСуществует(ОбъектСценария, ИмяМетода);
|
||||
|
||||
Ожидаем.Что(ЕстьМетод, Истина).ЭтоИстина();
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ПолучитьСценарий(ИмяСценария)
|
||||
|
||||
Сценарий = ОбъединитьПути(КаталогИсходников(), "src", "СценарииОбработки", ИмяСценария);
|
||||
ОбъектСценария = ЗагрузитьСценарий(Сценарий);
|
||||
|
||||
Возврат ОбъектСценария;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура СценарийВозвращаетНастройки(ОбъектСценария, ИмяНастройки)
|
||||
|
||||
Рефлектор = Новый Рефлектор;
|
||||
СтруктураНастроек = Рефлектор.ВызватьМетод(ОбъектСценария, НазваниеМетодаНастроек());
|
||||
|
||||
Утверждения.ПроверитьРавенство(СтруктураНастроек.ИмяСценария, ИмяНастройки);
|
||||
Утверждения.ПроверитьРавенство(ТипЗнч(СтруктураНастроек.Настройка), Тип("Соответствие"));
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ВключитьПоказОтладки()
|
||||
Лог.УстановитьУровень(УровниЛога.Отладка);
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ВыключитьПоказОтладки()
|
||||
Лог.УстановитьУровень(УровниЛога.Информация);
|
||||
КонецПроцедуры
|
||||
|
||||
Функция КаталогТестовыхФикстур()
|
||||
Возврат ОбъединитьПути(КаталогИсходников(), "tests\fixtures");
|
||||
КонецФункции
|
||||
|
||||
Функция Фикстура(ПутьВКаталогеФикстур)
|
||||
|
||||
Возврат ОбъединитьПути(КаталогТестовыхФикстур(), ПутьВКаталогеФикстур)
|
||||
КонецФункции
|
||||
|
||||
Функция КаталогИсходников()
|
||||
Возврат ОбъединитьПути(ТекущийСценарий().Каталог, "..");
|
||||
КонецФункции
|
||||
|
||||
Функция НазваниеМетодаНастроек()
|
||||
|
||||
Возврат "ПолучитьСтандартныеНастройкиСценария";
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьДополнительныеНастройки()
|
||||
|
||||
УправлениеНастройками = МенеджерНастроек.НастройкиРепозитория(ТекущийКаталог(), Ложь);
|
||||
Настройка = МенеджерНастроек.НастройкиПроекта().Получить("НастройкиСценариев");
|
||||
ДополнительныеНастройки = Новый Структура("Лог, Настройки, ИзмененныеКаталоги", Лог, Настройка, Новый Массив());
|
||||
|
||||
Возврат ДополнительныеНастройки;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПодготовитьИзменяемыйТестовыйФайл(Знач ИмяТестовогоФайла)
|
||||
|
||||
ПутьКТесту = ОбъединитьПути(КаталогТестовыхФикстур(), ИмяТестовогоФайла);
|
||||
ПутьКФайлу = МенеджерВременныхФайлов.СоздатьФайл(ИмяТестовогоФайла);
|
||||
КопироватьФайл(ПутьКТесту, ПутьКФайлу);
|
||||
Файл = Новый Файл(ПутьКФайлу);
|
||||
|
||||
Возврат Файл;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
@ -11,7 +11,7 @@
|
||||
Функция ПолучитьСписокТестов(ЮнитТестирование) Экспорт
|
||||
|
||||
ПередЗапускомТестов();
|
||||
|
||||
|
||||
юТест = ЮнитТестирование;
|
||||
|
||||
ВсеТесты = Новый Массив;
|
||||
@ -20,7 +20,7 @@
|
||||
ВсеТесты.Добавить("Тест_ИспользованиеЛокальныхНастроек");
|
||||
ВсеТесты.Добавить("Тест_ОтключенныеНастройки");
|
||||
ВсеТесты.Добавить("Тест_ОтключенныеНастройкиИПереопределенныеГлобальныеСценарии");
|
||||
|
||||
|
||||
ВсеТесты.Добавить("Тест_НастройкиПроектов");
|
||||
ВсеТесты.Добавить("Тест_НастройкиСценариев");
|
||||
|
||||
@ -29,16 +29,16 @@
|
||||
КонецФункции
|
||||
|
||||
Процедура ПередЗапускомТестов()
|
||||
|
||||
|
||||
МенеджерПриложения.Инициализировать(ПараметрыПриложения);
|
||||
|
||||
|
||||
Попытка
|
||||
ВремТестер = Новый Тестер;
|
||||
Лог = Логирование.ПолучитьЛог(ВремТестер.ИмяЛога());
|
||||
Исключение
|
||||
Лог = Логирование.ПолучитьЛог("Test");
|
||||
КонецПопытки;
|
||||
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПередЗапускомТеста() Экспорт
|
||||
@ -65,7 +65,7 @@
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Тест_ИспользованиеЛокальныхНастроек() Экспорт
|
||||
|
||||
|
||||
НастройкиПрекоммит = ЗагрузитьНастройкиИзФикстуры("v8config.json");
|
||||
|
||||
Ожидаем.Что(НастройкиПрекоммит, "Не удалось загрузить настройки").Заполнено();
|
||||
@ -76,129 +76,130 @@
|
||||
ОжидаемыеСценарии.Добавить("УдалениеЛишнихПустыхСтрок.os");
|
||||
|
||||
ПроверитьОжидаемыеСценарии(НастройкиПрекоммит["ГлобальныеСценарии"], ОжидаемыеСценарии);
|
||||
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Тест_ОтключенныеНастройки() Экспорт
|
||||
|
||||
|
||||
НастройкиПрекоммит = ЗагрузитьНастройкиИзФикстуры("v8configОтключенныеСценарии.json");
|
||||
|
||||
Ожидаем.Что(НастройкиПрекоммит, "Не удалось загрузить настройки").Заполнено();
|
||||
|
||||
ОжидаемыеСценарии = Новый Массив();
|
||||
ОжидаемыеСценарии.Добавить("ДобавлениеПробеловПередКлючевымиСловами.os");
|
||||
ОжидаемыеСценарии.Добавить("ЗапретИспользованияПерейти.os");
|
||||
ОжидаемыеСценарии.Добавить("ИсправлениеНеКаноническогоНаписания.os");
|
||||
ОжидаемыеСценарии.Добавить("КорректировкаXMLФорм.os");
|
||||
ОжидаемыеСценарии.Добавить("ДобавлениеПробеловПередКлючевымиСловами.os");
|
||||
ОжидаемыеСценарии.Добавить("ДобавлениеТестовВРасширение.os");
|
||||
ОжидаемыеСценарии.Добавить("ЗапретИспользованияПерейти.os");
|
||||
ОжидаемыеСценарии.Добавить("ИсправлениеНеКаноническогоНаписания.os");
|
||||
ОжидаемыеСценарии.Добавить("КорректировкаXMLФорм.os");
|
||||
ОжидаемыеСценарии.Добавить("ОбработкаЮнитТестов.os");
|
||||
ОжидаемыеСценарии.Добавить("ПроверкаНецензурныхСлов.os");
|
||||
ОжидаемыеСценарии.Добавить("ОтключениеПолнотекстовогоПоиска.os");
|
||||
ОжидаемыеСценарии.Добавить("ОтключениеПолнотекстовогоПоиска.os");
|
||||
ОжидаемыеСценарии.Добавить("ПроверкаКорректностиДирективКомпиляции.os");
|
||||
ОжидаемыеСценарии.Добавить("ПроверкаДублейПроцедурИФункций.os");
|
||||
ОжидаемыеСценарии.Добавить("ПроверкаКорректностиОбластей.os");
|
||||
ОжидаемыеСценарии.Добавить("РазборОбычныхФормНаИсходники.os");
|
||||
ОжидаемыеСценарии.Добавить("РазборОтчетовОбработокРасширений.os");
|
||||
ОжидаемыеСценарии.Добавить("СинхронизацияОбъектовМетаданныхИФайлов.os");
|
||||
ОжидаемыеСценарии.Добавить("ПроверкаДублейПроцедурИФункций.os");
|
||||
ОжидаемыеСценарии.Добавить("ПроверкаКорректностиОбластей.os");
|
||||
ОжидаемыеСценарии.Добавить("РазборОбычныхФормНаИсходники.os");
|
||||
ОжидаемыеСценарии.Добавить("РазборОтчетовОбработокРасширений.os");
|
||||
ОжидаемыеСценарии.Добавить("СинхронизацияОбъектовМетаданныхИФайлов.os");
|
||||
ОжидаемыеСценарии.Добавить("СортировкаДереваМетаданных.os");
|
||||
|
||||
ИменаЗагружаемыхСценариев = МенеджерНастроек.ИменаЗагружаемыхСценариев();
|
||||
|
||||
|
||||
ПроверитьОжидаемыеСценарии(ИменаЗагружаемыхСценариев, ОжидаемыеСценарии);
|
||||
|
||||
|
||||
ИменаЗагружаемыхСценариев = МенеджерНастроек.ИменаЗагружаемыхСценариев("Несуществующий проект");
|
||||
|
||||
|
||||
ПроверитьОжидаемыеСценарии(ИменаЗагружаемыхСценариев, ОжидаемыеСценарии);
|
||||
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Тест_ОтключенныеНастройкиИПереопределенныеГлобальныеСценарии() Экспорт
|
||||
|
||||
|
||||
НастройкиПрекоммит = ЗагрузитьНастройкиИзФикстуры("v8configОтключенныеСценарииПереопреденыГлобальные.json");
|
||||
|
||||
Ожидаем.Что(НастройкиПрекоммит, "Не удалось загрузить настройки").Заполнено();
|
||||
|
||||
ОжидаемыеСценарии = Новый Массив();
|
||||
ОжидаемыеСценарии.Добавить("РазборОбычныхФормНаИсходники.os");
|
||||
ОжидаемыеСценарии.Добавить("РазборОтчетовОбработокРасширений.os");
|
||||
ОжидаемыеСценарии.Добавить("СинхронизацияОбъектовМетаданныхИФайлов.os");
|
||||
ОжидаемыеСценарии.Добавить("РазборОбычныхФормНаИсходники.os");
|
||||
ОжидаемыеСценарии.Добавить("РазборОтчетовОбработокРасширений.os");
|
||||
ОжидаемыеСценарии.Добавить("СинхронизацияОбъектовМетаданныхИФайлов.os");
|
||||
ОжидаемыеСценарии.Добавить("СортировкаДереваМетаданных.os");
|
||||
|
||||
ИменаЗагружаемыхСценариев = МенеджерНастроек.ИменаЗагружаемыхСценариев();
|
||||
|
||||
|
||||
ПроверитьОжидаемыеСценарии(ИменаЗагружаемыхСценариев, ОжидаемыеСценарии);
|
||||
|
||||
|
||||
ИменаЗагружаемыхСценариев = МенеджерНастроек.ИменаЗагружаемыхСценариев("Несуществующий проект");
|
||||
|
||||
|
||||
ПроверитьОжидаемыеСценарии(ИменаЗагружаемыхСценариев, ОжидаемыеСценарии);
|
||||
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Тест_НастройкиПроектов() Экспорт
|
||||
|
||||
ВсеСценарии = МенеджерНастроек.ПолучитьИменаСценариевКаталога(МенеджерПриложения.КаталогСценариев());
|
||||
|
||||
|
||||
Каталог = СоздатьТестовыйКаталог("v8configПроекты.json");
|
||||
|
||||
Настройки = МенеджерНастроек.НастройкиРепозитория(Каталог);
|
||||
НастройкиПрекоммит = Настройки.НастройкиПриложения(МенеджерНастроек.КлючНастройкиPrecommit());
|
||||
|
||||
|
||||
Ожидаем.Что(МенеджерНастроек.ПроектыКонфигурации(), "Не найден проект настроек").Содержит("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"),
|
||||
"Не корректные настройки проекта")
|
||||
.Не_().Равно(НастройкиПрекоммит);
|
||||
Ожидаем.Что(МенеджерНастроек.НастройкиПроекта("configuration2"),
|
||||
"Не корректные настройки проекта. Для отсутствующего проекта должны возвращаться общие настройки")
|
||||
.Равно(НастройкиПрекоммит);
|
||||
|
||||
.Равно(НастройкиПрекоммит);
|
||||
|
||||
ВариантыПроверки = Новый ТаблицаЗначений();
|
||||
ВариантыПроверки.Колонки.Добавить("ИмяФайла");
|
||||
ВариантыПроверки.Колонки.Добавить("Настройка");
|
||||
ДобавитьВариантНастройки(ВариантыПроверки, "configuration\module.bsl", НастройкаConfiguration);
|
||||
ДобавитьВариантНастройки(ВариантыПроверки, "configuration\module.bsl", НастройкаConfiguration);
|
||||
ДобавитьВариантНастройки(ВариантыПроверки, "ext\extension1\module.bsl", НастройкаExtension1);
|
||||
ДобавитьВариантНастройки(ВариантыПроверки, "\confiGuration\module.bsl", НастройкаConfiguration);
|
||||
ДобавитьВариантНастройки(ВариантыПроверки, "test\module.bsl", НастройкиПрекоммит);
|
||||
ДобавитьВариантНастройки(ВариантыПроверки, "module.bsl", НастройкиПрекоммит);
|
||||
ДобавитьВариантНастройки(ВариантыПроверки, "", НастройкиПрекоммит);
|
||||
ДобавитьВариантНастройки(ВариантыПроверки, "test\module.bsl", НастройкиПрекоммит);
|
||||
ДобавитьВариантНастройки(ВариантыПроверки, "module.bsl", НастройкиПрекоммит);
|
||||
ДобавитьВариантНастройки(ВариантыПроверки, "", НастройкиПрекоммит);
|
||||
|
||||
Для каждого Вариант Из ВариантыПроверки Цикл
|
||||
|
||||
Ожидаем.Что(МенеджерНастроек.НастройкаДляФайла(Вариант.ИмяФайла),
|
||||
СтрШаблон("Не верно определена настройка для файла '%1'", Вариант.ИмяФайла))
|
||||
.Равно(Вариант.Настройка);
|
||||
|
||||
.Равно(Вариант.Настройка);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Тест_НастройкиСценариев() Экспорт
|
||||
|
||||
|
||||
НастройкиПрекоммит = ЗагрузитьНастройкиИзФикстуры("v8configПроекты.json");
|
||||
|
||||
|
||||
ВариантыПроверки = Новый ТаблицаЗначений();
|
||||
ВариантыПроверки.Колонки.Добавить("ИмяФайла");
|
||||
ВариантыПроверки.Колонки.Добавить("ИмяСценария");
|
||||
@ -206,13 +207,13 @@
|
||||
ВариантыПроверки.Колонки.Добавить("ЗначениеНастройки");
|
||||
|
||||
ДобавитьВариантНастройки(ВариантыПроверки, "ext\extension1\module.bsl", "ОтключениеПолнотекстовогоПоиска", "МетаданныеДляИсключения", "src\Документ2.mdo");
|
||||
ДобавитьВариантНастройки(ВариантыПроверки, "configuration\module.bsl", "ОтключениеПолнотекстовогоПоиска", "МетаданныеДляИсключения", Неопределено);
|
||||
ДобавитьВариантНастройки(ВариантыПроверки, "tests\module.bsl", "ОтключениеПолнотекстовогоПоиска", "МетаданныеДляИсключения", "src\Документ1.mdo");
|
||||
ДобавитьВариантНастройки(ВариантыПроверки, "configuration\module.bsl", "ОтключениеПолнотекстовогоПоиска", "МетаданныеДляИсключения", Неопределено);
|
||||
ДобавитьВариантНастройки(ВариантыПроверки, "tests\module.bsl", "ОтключениеПолнотекстовогоПоиска", "МетаданныеДляИсключения", "src\Документ1.mdo");
|
||||
|
||||
Для Каждого Вариант Из ВариантыПроверки Цикл
|
||||
|
||||
Настройка = МенеджерНастроек.НастройкаДляФайла(Вариант.ИмяФайла);
|
||||
|
||||
|
||||
КлючНастройки = СтрШаблон("НастройкиСценариев.%1.%2", Вариант.ИмяСценария, Вариант.ИмяНастройки);
|
||||
ЗначениеНастройки = МенеджерНастроек.ЗначениеПоКлючу(Настройка, КлючНастройки);
|
||||
|
||||
@ -220,41 +221,41 @@
|
||||
|
||||
Ожидаем.Что(ЗначениеНастройки,
|
||||
СтрШаблон("Не верно определена настройка сценария '%2' для файла '%1'", Вариант.ИмяФайла, Вариант.ИмяСценария))
|
||||
.Равно(Неопределено);
|
||||
.Равно(Неопределено);
|
||||
Иначе
|
||||
|
||||
Ожидаем.Что(ЗначениеНастройки[Вариант.ЗначениеНастройки],
|
||||
Ожидаем.Что(ЗначениеНастройки[Вариант.ЗначениеНастройки],
|
||||
СтрШаблон("Не верно определена настройка сценария '%2' для файла '%1'", Вариант.ИмяФайла, Вариант.ИмяСценария))
|
||||
.НЕ_().Равно(Неопределено);
|
||||
|
||||
КонецЕсли;
|
||||
.НЕ_().Равно(Неопределено);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПроверитьЗначение(Ключ, Проект, ОжидаемоеЗначение, Дополнение = "")
|
||||
|
||||
Ожидаем.Что(МенеджерНастроек.ЗначениеНастройки(Ключ, Проект),
|
||||
|
||||
Ожидаем.Что(МенеджерНастроек.ЗначениеНастройки(Ключ, Проект),
|
||||
СтрШаблон("Не верное значение настройки '%1.%2' %3", Проект, Ключ, Дополнение))
|
||||
.Равно(ОжидаемоеЗначение);
|
||||
|
||||
.Равно(ОжидаемоеЗначение);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#Область Служебные
|
||||
|
||||
Процедура ПроверитьОжидаемыеСценарии(ГлобальныеСценарии, ОжидаемыеСценарии)
|
||||
|
||||
|
||||
Ожидаем.Что(ГлобальныеСценарии, "Нет глобальных сценариев").Заполнено();
|
||||
|
||||
Ожидаем.Что(ГлобальныеСценарии.Количество(), "Не корректный список сценариев").Равно(ОжидаемыеСценарии.Количество());
|
||||
|
||||
Для каждого ИмяСценария Из ОжидаемыеСценарии Цикл
|
||||
|
||||
Ожидаем.Что(ГлобальныеСценарии, "Не содержит нужные сценарии").Содержит(ИмяСценария)
|
||||
|
||||
Ожидаем.Что(ГлобальныеСценарии, "Не содержит нужные сценарии").Содержит(ИмяСценария);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ВключитьПоказОтладки()
|
||||
@ -266,13 +267,13 @@
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ЗагрузитьНастройкиИзФикстуры(ИмяФикстуры)
|
||||
|
||||
|
||||
КаталогРепозитория = СоздатьТестовыйКаталог(ИмяФикстуры);
|
||||
|
||||
Настройки = МенеджерНастроек.НастройкиРепозитория(КаталогРепозитория);
|
||||
|
||||
Возврат Настройки.НастройкиПриложения(МенеджерНастроек.КлючНастройкиPrecommit());
|
||||
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция СоздатьТестовыйКаталог(ИмяФикстуры)
|
||||
@ -288,9 +289,9 @@
|
||||
СоздатьКаталог(ОбъединитьПути(Каталог, "ext"));
|
||||
СоздатьКаталог(ОбъединитьПути(Каталог, "ext", "extension1"));
|
||||
СоздатьКаталог(ОбъединитьПути(Каталог, "ext", "extension2"));
|
||||
|
||||
|
||||
Возврат Каталог;
|
||||
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ДобавитьВариантНастройки(Варианты, Значение1 = Неопределено, Значение2 = Неопределено, Значение3 = Неопределено, Значение4 = Неопределено)
|
||||
@ -300,7 +301,7 @@
|
||||
Для Инд = 1 По 4 Цикл
|
||||
|
||||
Значение = Вычислить(СтрШаблон("Значение%1", Инд));
|
||||
|
||||
|
||||
Если Значение <> Неопределено Тогда
|
||||
Строка[Инд - 1] = Значение;
|
||||
КонецЕсли;
|
||||
@ -308,4 +309,4 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
#КонецОбласти
|
||||
|
@ -11,7 +11,7 @@
|
||||
Функция ПолучитьСписокТестов(ЮнитТестирование) Экспорт
|
||||
|
||||
ПередЗапускомТестов();
|
||||
|
||||
|
||||
юТест = ЮнитТестирование;
|
||||
|
||||
ВсеТесты = Новый Массив;
|
||||
@ -20,7 +20,7 @@
|
||||
ВсеТесты.Добавить("Тест_СброситьГлобальныеНастройки");
|
||||
ВсеТесты.Добавить("Тест_ПолучитьСтандартнуюСтруктуруНастроек");
|
||||
ВсеТесты.Добавить("Тест_ОбновитьНастройки");
|
||||
|
||||
|
||||
Возврат ВсеТесты;
|
||||
|
||||
КонецФункции
|
||||
@ -28,16 +28,16 @@
|
||||
#Область ПередПослеТеста
|
||||
|
||||
Процедура ПередЗапускомТестов()
|
||||
|
||||
|
||||
МенеджерПриложения.Инициализировать(ПараметрыПриложения);
|
||||
|
||||
|
||||
Попытка
|
||||
ВремТестер = Новый Тестер;
|
||||
Лог = Логирование.ПолучитьЛог(ВремТестер.ИмяЛога());
|
||||
Исключение
|
||||
Лог = Логирование.ПолучитьЛог("Test");
|
||||
КонецПопытки;
|
||||
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПередЗапускомТеста() Экспорт
|
||||
@ -46,7 +46,7 @@
|
||||
|
||||
МенеджерВременныхФайлов = Новый МенеджерВременныхФайлов;
|
||||
МенеджерНастроек.СбросСостоянияМенеджера();
|
||||
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПослеЗапускаТеста() Экспорт
|
||||
@ -61,52 +61,52 @@
|
||||
#Область Тесты
|
||||
|
||||
Процедура Тест_СброситьНастройкиРепозитория() Экспорт
|
||||
|
||||
|
||||
Каталог = СоздатьТестовыйКаталог("v8configПроекты.json");
|
||||
|
||||
|
||||
// Сброс по проектно
|
||||
МенеджерНастроек.НастройкиРепозитория(Каталог, Ложь);
|
||||
|
||||
|
||||
Ожидаем.Что(МенеджерНастроек.ПроектыКонфигурации(), "Не найден проект").Содержит("configuration\");
|
||||
Ожидаем.Что(МенеджерНастроек.ПроектыКонфигурации(), "Не найден проект").Содержит("ext\extension1\");
|
||||
|
||||
|
||||
РедакторНастроек.СброситьНастройкиРепозитория(Истина, "ext\extension1\");
|
||||
|
||||
|
||||
Ожидаем.Что(МенеджерНастроек.ПроектыКонфигурации(), "Проект не удален").НЕ_().Содержит("ext\extension1\");
|
||||
Ожидаем.Что(МенеджерНастроек.ПроектыКонфигурации(), "Не найден проект").Содержит("configuration\");
|
||||
|
||||
|
||||
РедакторНастроек.СброситьНастройкиРепозитория(Истина, "configuration\extension1\");
|
||||
|
||||
|
||||
Ожидаем.Что(МенеджерНастроек.ПроектыКонфигурации(), "Удален лишний репозиторий").Содержит("configuration\");
|
||||
|
||||
|
||||
// Перезагрузим настройки
|
||||
МенеджерНастроек.НастройкиРепозитория(Каталог, Ложь);
|
||||
Ожидаем.Что(МенеджерНастроек.ПроектыКонфигурации(), "Настройки не сохранены").НЕ_().Содержит("ext\extension1\");
|
||||
Ожидаем.Что(МенеджерНастроек.ПроектыКонфигурации(), "Настройки сохранены не корректно").Содержит("configuration\");
|
||||
|
||||
|
||||
// Сброс всех подпроектов
|
||||
|
||||
|
||||
Каталог = СоздатьТестовыйКаталог("v8configПроекты.json");
|
||||
|
||||
|
||||
МенеджерНастроек.НастройкиРепозитория(Каталог, Ложь);
|
||||
РедакторНастроек.СброситьНастройкиРепозитория(Истина);
|
||||
Ожидаем.Что(МенеджерНастроек.ПроектыКонфигурации(), "Не выполнен сброс настроек подпроектов").ИмеетДлину(0);
|
||||
Ожидаем.Что(МенеджерНастроек.ЗначениеНастройки("ОтключенныеСценарии"), "Не корректны настройки").ИмеетДлину(1);
|
||||
|
||||
|
||||
// Перезагрузим настройки
|
||||
МенеджерНастроек.НастройкиРепозитория(Каталог, Ложь);
|
||||
Ожидаем.Что(МенеджерНастроек.ПроектыКонфигурации(), "Настройки не сохранены").ИмеетДлину(0);
|
||||
Ожидаем.Что(МенеджерНастроек.ЗначениеНастройки("ОтключенныеСценарии"), "Не корректны настройки после загрузки").ИмеетДлину(1);
|
||||
|
||||
|
||||
// Полный сброс настроек прекоммит
|
||||
|
||||
|
||||
Каталог = СоздатьТестовыйКаталог("v8configПроекты.json");
|
||||
|
||||
|
||||
МенеджерНастроек.НастройкиРепозитория(Каталог, Ложь);
|
||||
РедакторНастроек.СброситьНастройкиРепозитория();
|
||||
Ожидаем.Что(МенеджерНастроек.ПроектыКонфигурации(), "Не выполнен сброс настроек").ИмеетДлину(0);
|
||||
Ожидаем.Что(МенеджерНастроек.ЗначениеНастройки("ОтключенныеСценарии"), "Не корректны настройки").НЕ_().Заполнено();
|
||||
|
||||
|
||||
// Перезагрузим настройки
|
||||
МенеджерНастроек.НастройкиРепозитория(Каталог, Ложь);
|
||||
Ожидаем.Что(МенеджерНастроек.ПроектыКонфигурации(), "Настройки не сохранены").ИмеетДлину(0);
|
||||
@ -115,35 +115,35 @@
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Тест_СброситьГлобальныеНастройки() Экспорт
|
||||
|
||||
|
||||
Каталог = СоздатьТестовыйКаталог("v8configПроекты.json");
|
||||
|
||||
|
||||
МенеджерНастроек.УстановитьКаталогГлобальныхНастроек(Каталог);
|
||||
МенеджерНастроек.ГлобальныеНастройки();
|
||||
|
||||
|
||||
РедакторНастроек.СброситьГлобальныеНастройки();
|
||||
|
||||
|
||||
МенеджерНастроек.НастройкиРепозитория(Каталог, Ложь);
|
||||
|
||||
|
||||
Ожидаем.Что(МенеджерНастроек.ПроектыКонфигурации(), "Не удалены подпроекты").НЕ_().Заполнено();
|
||||
Ожидаем.Что(МенеджерНастроек.ЗначениеНастройки("ОтключенныеСценарии"), "Не сброшены ОтключенныеСценарии").НЕ_().Заполнено();
|
||||
|
||||
Для Каждого ИмяСценария Из СценарииОбработки.ГлобальныеСценарии() Цикл
|
||||
|
||||
|
||||
Ожидаем.Что(МенеджерНастроек.ЗначениеНастройки("ГлобальныеСценарии"), "Не сброшены ГлобальныеСценарии").Содержит(ИмяСценария);
|
||||
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Тест_ПолучитьСтандартнуюСтруктуруНастроек() Экспорт
|
||||
|
||||
|
||||
СтандартныеНастройки = РедакторНастроек.ПолучитьСтандартнуюСтруктуруНастроек();
|
||||
|
||||
|
||||
Ожидаем.Что(СтандартныеНастройки)
|
||||
.ИмеетТип("Соответствие")
|
||||
.ИмеетДлину(5);
|
||||
|
||||
|
||||
Эталон = Новый Соответствие();
|
||||
|
||||
Эталон.Вставить("ИспользоватьСценарииРепозитория", "Булево");
|
||||
@ -151,86 +151,86 @@
|
||||
Эталон.Вставить("ГлобальныеСценарии", "Массив");
|
||||
Эталон.Вставить("ОтключенныеСценарии", "Массив");
|
||||
Эталон.Вставить("НастройкиСценариев", "Соответствие");
|
||||
|
||||
Для Каждого Элемент Из Эталон Цикл
|
||||
|
||||
|
||||
Для Каждого Элемент Из Эталон Цикл
|
||||
|
||||
Ожидаем.Что(СтандартныеНастройки[Элемент.Ключ], "Не верное свойство " + Элемент.Ключ).ИмеетТип(Элемент.Значение);
|
||||
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Тест_ОбновитьНастройки() Экспорт
|
||||
|
||||
|
||||
Варианты = Новый ТаблицаЗначений();
|
||||
|
||||
|
||||
Варианты.Колонки.Добавить("Описание");
|
||||
Варианты.Колонки.Добавить("ИмяФикстуры");
|
||||
Варианты.Колонки.Добавить("НовыеНастройки");
|
||||
Варианты.Колонки.Добавить("НовыеПроекты");
|
||||
Варианты.Колонки.Добавить("ОжидаемыеПроекты");
|
||||
|
||||
|
||||
БазовыеНастройки = РедакторНастроек.ПолучитьСтандартнуюСтруктуруНастроек();
|
||||
НастройкиПроектов = Новый Соответствие();
|
||||
НастройкиПроектов.Вставить("configuration\", РедакторНастроек.ПолучитьСтандартнуюСтруктуруНастроек());
|
||||
|
||||
|
||||
ДобавитьВариантНастройки(Варианты, "Только базовые настройки", "v8config.json", БазовыеНастройки, , "");
|
||||
ДобавитьВариантНастройки(Варианты, "К базовым настройкам добавляем проекты", "v8config.json", БазовыеНастройки, НастройкиПроектов, "configuration\");
|
||||
|
||||
|
||||
ДобавитьВариантНастройки(Варианты, "Настройки с проектами, обновляем только базовые настройки", "v8configПроекты.json", БазовыеНастройки, , "configuration\,ext\extension1");
|
||||
ДобавитьВариантНастройки(Варианты, "Обновление настройки подпроекта", "v8configПроекты.json", БазовыеНастройки, НастройкиПроектов, "configuration\,ext\extension1\");
|
||||
НастройкиПроектов = Новый Соответствие();
|
||||
НастройкиПроектов.Вставить("configuration2\", РедакторНастроек.ПолучитьСтандартнуюСтруктуруНастроек());
|
||||
ДобавитьВариантНастройки(Варианты, "Добавление настройки подпроекта", "v8configПроекты.json", БазовыеНастройки, НастройкиПроектов, "configuration\,configuration2\,ext\extension1\");
|
||||
|
||||
|
||||
Для Каждого Вариант Из Варианты Цикл
|
||||
|
||||
|
||||
Лог.Отладка("Обработка файла %1", Вариант.ИмяФикстуры);
|
||||
МенеджерНастроек.СбросСостоянияМенеджера();
|
||||
Каталог = СоздатьТестовыйКаталог(Вариант.ИмяФикстуры);
|
||||
|
||||
|
||||
МенеджерНастроек.НастройкиРепозитория(Каталог, Ложь);
|
||||
|
||||
|
||||
РедакторНастроек.ОбновитьНастройки(Вариант.НовыеНастройки, Вариант.НовыеПроекты);
|
||||
|
||||
|
||||
МенеджерНастроек.СбросСостоянияМенеджера();
|
||||
МенеджерНастроек.НастройкиРепозитория(Каталог, Ложь);
|
||||
|
||||
|
||||
Префикс = СтрШаблон("Вариант ""%1""", Вариант.Описание);
|
||||
|
||||
|
||||
Для Каждого Элемент Из Вариант.НовыеНастройки Цикл
|
||||
|
||||
|
||||
Сообщение = СтрШаблон("%1. Не верное значение поля '%2'", Префикс, Элемент.Ключ);
|
||||
|
||||
|
||||
ОжидаемоеЗначение = Элемент.Значение;
|
||||
|
||||
|
||||
Если ТипЗнч(ОжидаемоеЗначение) = Тип("Массив") Тогда
|
||||
|
||||
|
||||
Ожидаем.Что(МенеджерНастроек.ЗначениеНастройки(Элемент.Ключ), Сообщение).ИмеетТип("Массив").ИмеетДлину(ОжидаемоеЗначение.Количество());
|
||||
|
||||
|
||||
ИначеЕсли ТипЗнч(ОжидаемоеЗначение) = Тип("Соответствие") Тогда
|
||||
|
||||
|
||||
Ожидаем.Что(МенеджерНастроек.ЗначениеНастройки(Элемент.Ключ), Сообщение).ИмеетТип("Соответствие").ИмеетДлину(ОжидаемоеЗначение.Количество());
|
||||
|
||||
|
||||
Иначе
|
||||
|
||||
|
||||
Ожидаем.Что(МенеджерНастроек.ЗначениеНастройки(Элемент.Ключ), Сообщение).Равно(ОжидаемоеЗначение);
|
||||
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
|
||||
ИменаПроектов = СтрРазделить(Вариант.ОжидаемыеПроекты, ",");
|
||||
|
||||
Для Каждого ИмяПроекта Из ИменаПроектов Цикл
|
||||
|
||||
|
||||
Сообщение = СтрШаблон("%1. Нет настроек для проекта '%2'", Префикс, ИмяПроекта);
|
||||
Ожидаем.Что(МенеджерНастроек.НастройкиПроекта(ИмяПроекта), Сообщение).Заполнено();
|
||||
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@ -259,9 +259,9 @@
|
||||
СоздатьКаталог(ОбъединитьПути(Каталог, "ext"));
|
||||
СоздатьКаталог(ОбъединитьПути(Каталог, "ext", "extension1"));
|
||||
СоздатьКаталог(ОбъединитьПути(Каталог, "ext", "extension2"));
|
||||
|
||||
|
||||
Возврат Каталог;
|
||||
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ДобавитьВариантНастройки(Варианты, Значение1 = Неопределено, Значение2 = Неопределено, Значение3 = Неопределено, Значение4 = Неопределено, Значение5 = Неопределено)
|
||||
@ -271,7 +271,7 @@
|
||||
Для Инд = 1 По 5 Цикл
|
||||
|
||||
Значение = Вычислить(СтрШаблон("Значение%1", Инд));
|
||||
|
||||
|
||||
Если Значение <> Неопределено Тогда
|
||||
Строка[Инд - 1] = Значение;
|
||||
КонецЕсли;
|
||||
@ -279,4 +279,4 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
#КонецОбласти
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user