Skip to content

Commit bd09433

Browse files
committed
Create ТестСвойствМетодовКлиентСервера.os
1 parent c1ffff0 commit bd09433

1 file changed

Lines changed: 181 additions & 0 deletions

File tree

Lines changed: 181 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,181 @@
1+
// КаталогСправки задан как "C:\444". Разместите там каталог OneScriptFormsru с файлами справки или укажите свой.
2+
// КаталогБиблиотеки задан как "C:\444\111\OneScriptForms\OneScriptForms\bin\Debug". Разместите там файл библиотеки OneScriptForms.dll или укажите свой.
3+
// Продолжительность примерно 20 минут.
4+
Перем Ф, ИмяВременногоФайла, Таймер, ПолеВвода1, Форма1, Сч1, Сч2, Сч3, Сч4, Сч5, Сч6;
5+
Перем ТекстТеста, СтрКода0, СтрСозданияОбъекта, СтрСозданияОбъекта2, СписокИменПараметров, ФормаNotifyIcon;
6+
Перем СписокОшибок, КаталогСправки, КаталогБиблиотеки;
7+
8+
Функция РазобратьСтроку(Строка, Разделитель)
9+
Стр = СтрЗаменить(Строка, Разделитель, Символы.ПС);
10+
М = Новый Массив;
11+
Если ПустаяСтрока(Стр) Тогда
12+
Возврат М;
13+
КонецЕсли;
14+
Для Ч = 1 По СтрЧислоСтрок(Стр) Цикл
15+
М.Добавить(СтрПолучитьСтроку(Стр,Ч));
16+
КонецЦикла;
17+
Возврат М;
18+
КонецФункции
19+
20+
Функция СтрНайтиМежду(СтрПараметр, Фрагмент1 = Неопределено, Фрагмент2 = Неопределено, ИсключитьФрагменты = Истина, БезНаложения = Истина)
21+
//Стр - исходная строка
22+
//Фрагмент1 - подстрока поиска от которой ведем поиск
23+
//Фрагмент2 - подстрока поиска до которой ведем поиск
24+
//ИсключитьФрагменты - не включать Фрагмент1 и Фрагмент2 в результат
25+
//БезНаложения - в результат не будут включены участки, содержащие дугие найденные участки, удовлетворяющие переданным параметрам
26+
//функция возвращает массив строк
27+
Стр = СтрПараметр;
28+
М = Новый Массив;
29+
Если (Фрагмент1 <> Неопределено) и (Фрагмент2 = Неопределено) Тогда
30+
Позиция = Найти(Стр, Фрагмент1);
31+
Пока Позиция > 0 Цикл
32+
М.Добавить(?(ИсключитьФрагменты, Сред(Стр, Позиция + СтрДлина(Фрагмент1)), Сред(Стр, Позиция)));
33+
Стр = Сред(Стр, Позиция + 1);
34+
Позиция = Найти(Стр, Фрагмент1);
35+
КонецЦикла;
36+
ИначеЕсли (Фрагмент1 = Неопределено) и (Фрагмент2 <> Неопределено) Тогда
37+
Позиция = Найти(Стр, Фрагмент2);
38+
СуммаПозиций = Позиция;
39+
Пока Позиция > 0 Цикл
40+
М.Добавить(?(ИсключитьФрагменты, Сред(Стр, 1, СуммаПозиций - 1), Сред(Стр, 1, СуммаПозиций - 1 + СтрДлина(Фрагмент2))));
41+
Позиция = Найти(Сред(Стр, СуммаПозиций + 1), Фрагмент2);
42+
СуммаПозиций = СуммаПозиций + Позиция;
43+
КонецЦикла;
44+
ИначеЕсли (Фрагмент1 <> Неопределено) и (Фрагмент2 <> Неопределено) Тогда
45+
Позиция = Найти(Стр, Фрагмент1);
46+
Пока Позиция > 0 Цикл
47+
Стр2 = ?(ИсключитьФрагменты, Сред(Стр, Позиция + СтрДлина(Фрагмент1)), Сред(Стр, Позиция));
48+
Позиция2 = Найти(Стр2, Фрагмент2);
49+
СуммаПозиций2 = Позиция2;
50+
Пока Позиция2 > 0 Цикл
51+
Если БезНаложения Тогда
52+
Если Найти(Сред(Стр2, 1, СуммаПозиций2 - 1), Фрагмент2) = 0 Тогда
53+
М.Добавить("" + ?(ИсключитьФрагменты, Сред(Стр2, 1, СуммаПозиций2 - 1), Сред(Стр2, 1, СуммаПозиций2 - 1 + СтрДлина(Фрагмент2))));
54+
КонецЕсли;
55+
Иначе
56+
М.Добавить("" + ?(ИсключитьФрагменты, Сред(Стр2, 1, СуммаПозиций2 - 1), Сред(Стр2, 1, СуммаПозиций2 - 1 + СтрДлина(Фрагмент2))));
57+
КонецЕсли;
58+
Позиция2 = Найти(Сред(Стр2, СуммаПозиций2 + 1), Фрагмент2);
59+
СуммаПозиций2 = СуммаПозиций2 + Позиция2;
60+
КонецЦикла;
61+
Стр = Сред(Стр, Позиция + 1);
62+
Позиция = Найти(Стр, Фрагмент1);
63+
КонецЦикла;
64+
КонецЕсли;
65+
66+
Возврат М;
67+
КонецФункции
68+
69+
Процедура ТестированиеКодов()
70+
ВыбранныеФайлы = НайтиФайлы(КаталогСправки + "\OSClientServerRu", "*.html", Истина);
71+
Для А = 0 По ВыбранныеФайлы.ВГраница() Цикл
72+
Сообщить(" (" + Ф.Математика().Окр(((ТекущаяУниверсальнаяДатаВМиллисекундах() - Таймер)/1000)/60, 2) + " мин." + " " + А + " из " + ВыбранныеФайлы.ВГраница() + ") " +
73+
ВыбранныеФайлы[А].ПолноеИмя);
74+
Если (ВыбранныеФайлы[А].ПолноеИмя = КаталогСправки + "\OneScriptFormsru\SaveFileDialog.Reset.html") Тогда
75+
Продолжить;
76+
КонецЕсли;
77+
78+
// // // Если ВыбранныеФайлы[А].Имя = "OneScriptForms.DataGridViewButtonColumn.DefaultCellStyle.html" Тогда
79+
// // // ИначеЕсли ВыбранныеФайлы[А].Имя = "OneScriptForms.DataGridViewCell.Style.html" Тогда
80+
// // // ИначеЕсли ВыбранныеФайлы[А].Имя = "OneScriptForms.DataGridViewColumn.DefaultCellStyle.html" Тогда
81+
// // // ИначеЕсли ВыбранныеФайлы[А].Имя = "OneScriptForms.DataGridViewImageColumn.DefaultCellStyle.html" Тогда
82+
// // // Иначе
83+
// // // Продолжить;
84+
// // // КонецЕсли;
85+
86+
ТекстДок = Новый ТекстовыйДокумент;
87+
ТекстДок.Прочитать(ВыбранныеФайлы[А].ПолноеИмя);
88+
Стр = ТекстДок.ПолучитьТекст();
89+
М = СтрНайтиМежду(Стр, "<details><summary>Тестовый код</summary>", "</PRE>", Ложь, );
90+
Если М.Количество() > 0 Тогда
91+
Для А2 = 0 По М.Количество() - 1 Цикл
92+
ТестовыйКод0 = СтрНайтиМежду(М[А2], "<DIV id=""cont", "</DIV>", Ложь, )[0];
93+
ТестовыйКод = СтрНайтиМежду(ТестовыйКод0, """>", "</DIV>", , )[0];
94+
Если Не (СокрЛП(ТестовыйКод) = "") Тогда
95+
ТекстДокХХХ = Новый ТекстовыйДокумент;
96+
97+
// // // ИмяВременногоФайла = "C:\Users\master\AppData\Local\Temp\" + СтрЗаменить(ВыбранныеФайлы[А].Имя, ".html", "") + "-код.tmp";
98+
// // // ТекстДокХХХ.Записать(ИмяВременногоФайла);
99+
100+
ТекстДокХХХ.Прочитать(ИмяВременногоФайла);
101+
ТекстДокХХХ.УстановитьТекст(ТестовыйКод);
102+
ТекстДокХХХ.Записать(ИмяВременногоФайла);
103+
Команда1("""C:\Program Files\OneScript\bin\oscript.exe""", ИмяВременногоФайла, ПолеВвода1, ВыбранныеФайлы[А].Имя);
104+
Форма1.Фокус();
105+
КонецЕсли;
106+
КонецЦикла;
107+
КонецЕсли;
108+
КонецЦикла;
109+
КонецПроцедуры//ТестированиеКодов
110+
111+
Функция Команда1(ИмяФайла, Аргументы, Объект, ИмяФайлаСправки)
112+
ИнформацияЗапускаПроцесса1 = Ф.ИнформацияЗапускаПроцесса();
113+
ИнформацияЗапускаПроцесса1.ИмяФайла = ИмяФайла;
114+
ИнформацияЗапускаПроцесса1.Аргументы = Аргументы;
115+
ИнформацияЗапускаПроцесса1.СоздатьБезОкна = Истина;
116+
ИнформацияЗапускаПроцесса1.ИспользоватьОболочку = Ложь;
117+
ИнформацияЗапускаПроцесса1.СтильОкна = Ф.СтильОкнаПроцесса.Скрытое;
118+
ИнформацияЗапускаПроцесса1.ПеренаправитьСтандартныйВывод = Истина;
119+
120+
Процесс1 = Ф.Процесс();
121+
Процесс1.НачальнаяИнформация = ИнформацияЗапускаПроцесса1;
122+
Процесс1.Начать();
123+
Если Не Процесс1.Завершен Тогда
124+
Стр1 = Процесс1.СтандартныйВывод.ПрочитатьСтроку();
125+
Пока Стр1 <> Неопределено Цикл
126+
Стр3 = "" + Стр1;
127+
Двоеточие = Прав(Стр3, 3);
128+
Двоеточие = Лев(Двоеточие, 1);
129+
Если (СтрНайти(Стр3, "!!!") > 0) или (СтрНайти(Стр3, "{") > 0) или (Двоеточие <> ":") Тогда
130+
СписокОшибок.Добавить(Стр3 + " " + ИмяФайлаСправки);
131+
КонецЕсли;
132+
Объект.ДобавитьТекст(Стр3 + " " + ИмяФайлаСправки + Символы.ПС);
133+
Стр1 = Процесс1.СтандартныйВывод.ПрочитатьСтроку();
134+
КонецЦикла;
135+
Иначе
136+
Объект.ДобавитьТекст("Процесс1 завершен");
137+
КонецЕсли;
138+
Ф.ПередатьУправление();
139+
КонецФункции
140+
141+
Таймер = ТекущаяУниверсальнаяДатаВМиллисекундах();
142+
143+
КаталогСправки = "C:\444";// без слэша
144+
КаталогБиблиотеки = "C:\444\111\OneScriptClientServer\OneScriptClientServer\bin\Debug";// без слэша
145+
ИмяВременногоФайла = ПолучитьИмяВременногоФайла();
146+
ТекстДокХХХ = Новый ТекстовыйДокумент;
147+
ТекстДокХХХ.Записать(ИмяВременногоФайла);
148+
149+
ПодключитьВнешнююКомпоненту("C:\444\111\OneScriptForms\OneScriptForms\bin\Debug\OneScriptForms.dll");
150+
Ф = Новый ФормыДляОдноСкрипта();
151+
Форма1 = Ф.Форма();
152+
Форма1.Текст = "Общий тест OneScriptClientServer.dll";
153+
Форма1.Ширина = 1100;
154+
Форма1.Высота = 600;
155+
Форма1.Отображать = Истина;
156+
Форма1.Показать();
157+
158+
ПолеВвода1 = Форма1.ЭлементыУправления.Добавить(Ф.ПолеВвода());
159+
ПолеВвода1.МногострочныйРежим = Истина;
160+
ПолеВвода1.Стыковка = Ф.СтильСтыковки.Заполнение;
161+
ПолеВвода1.ЦветФона = Ф.Цвет().Черный;
162+
ПолеВвода1.ОсновнойЦвет = Ф.Цвет().БледноЗеленый;
163+
ПолеВвода1.ПолосыПрокрутки = Ф.ПолосыПрокрутки.Обе;
164+
ПолеВвода1.ПринятиеВозврат = Истина;
165+
ПолеВвода1.Перенос = Ложь;
166+
ПолеВвода1.РегистрСимволов = Ф.РегистрСимволов.Стандартный;
167+
168+
СписокОшибок = Новый СписокЗначений;
169+
170+
ТестированиеКодов();
171+
172+
ПолеВвода1.ДобавитьТекст("==============================================================================================" + Символы.ПС);
173+
ПолеВвода1.ДобавитьТекст("Тест выполнен за: " + ((ТекущаяУниверсальнаяДатаВМиллисекундах()-Таймер)/1000)/60 + " мин." + " " + ТекущаяДата() + Символы.ПС);
174+
ПолеВвода1.ДобавитьТекст("Ошибок = " + СписокОшибок.Количество() + Символы.ПС);
175+
Для А = 0 По СписокОшибок.Количество() - 1 Цикл
176+
ПолеВвода1.ДобавитьТекст("" + СписокОшибок.Получить(А).Значение + Символы.ПС);
177+
КонецЦикла;
178+
179+
УдалитьФайлы(ИмяВременногоФайла);
180+
181+
Ф.ЗапуститьОбработкуСобытий();

0 commit comments

Comments
 (0)