1
- #Использовать asserts
2
- #Использовать fs
3
- #Использовать json
4
-
5
1
Перем ТекущаяЗаписьXML ;
6
2
Перем ДатаГенерации ;
7
3
Перем ИмяПроекта ;
8
4
Перем ПутьКИсходникам ;
9
5
10
- Процедура СоздатьОтчетClover (Знач ПутьКСтат , Знач ПутьКОтчетуClover ) Экспорт
11
-
12
- Файл_Стат = Новый Файл(ПутьКСтат);
13
- Ожидаем.Что(Файл_Стат.Существует(), СтрШаблон ("Файл <%1> с результатами покрытия не существует!" , Файл_Стат.ПолноеИмя)).ЭтоИстина();
14
-
15
- ЧтениеТекста = Новый ЧтениеТекста(ПутьКСтат, КодировкаТекста.UTF8);
6
+ // Выполняет формирование отчета
7
+ //
8
+ // Параметры:
9
+ // ДанныеСтатистикиПокрытия - Соответствие - Прочитанные данные статистики OScript
10
+ // ПутьКОтчетуClover - Строка - Путь к файлу отчета
11
+ //
12
+ Процедура Сформировать (Знач ДанныеСтатистикиПокрытия , Знач ПутьКОтчетуClover ) Экспорт
16
13
17
- СтрокаJSON = ЧтениеТекста.Прочитать();
18
- ЧтениеТекста.Закрыть();
19
-
20
- Парсер = Новый ПарсерJSON();
21
- ДанныеПокрытия = Парсер.ПрочитатьJSON(СтрокаJSON);
14
+ ДанныеПокрытия = ДанныеСтатистикиПокрытия;
22
15
23
16
ТекущаяЗаписьXML = Новый ЗаписьXML;
24
17
ТекущаяЗаписьXML.ОткрытьФайл(ПутьКОтчетуClover);
30
23
ТекущаяЗаписьXML.ЗаписатьАтрибут("clover" , "1.0" );
31
24
ТекущаяЗаписьXML.ЗаписатьАтрибут("generated" , ДатаГенерации);
32
25
33
- ТаблицаМетрик = ПолучитьТаблицуМетрик();
34
-
35
26
ДобавитьОписаниеПроекта(ИмяПроекта);
36
27
ДобавитьОписаниеПакета("main" );
37
28
44
35
45
36
ПутьКФайлу = ДанныеФайла.Получить("#path" );
46
37
47
- Если НЕ ФайлПодлежитПроверке(ПутьКФайлу) Тогда
48
- Продолжить ;
49
- КонецЕсли ;
50
-
51
38
ВсегоФайловВПакете = ВсегоФайловВПакете + 1 ;
52
39
53
40
ФайлПокрытия = Новый Файл(ПутьКФайлу);
54
41
ИмяФайла = ФайлПокрытия.Имя;
55
-
42
+ КаталогФайла = ФайлПокрытия.Путь ;
56
43
ТекущаяЗаписьXML.ЗаписатьНачалоЭлемента("file" );
57
44
ТекущаяЗаписьXML.ЗаписатьАтрибут("name" , ИмяФайла);
58
- ТекущаяЗаписьXML.ЗаписатьАтрибут("path" , ПутьКФайлу );
45
+ ТекущаяЗаписьXML.ЗаписатьАтрибут("path" , КаталогФайла );
59
46
60
47
КоличествоМетодов = 0 ;
61
48
КоличествоПокрытыхМетодов = 0 ;
166
153
167
154
КонецПроцедуры
168
155
169
- Функция ФайлПодлежитПроверке (ПутьКФайлу )
170
-
171
- ФайлПодходит = СтрНачинаетсяС (ПутьКФайлу, ПутьКИсходникам);
172
-
173
- Возврат ФайлПодходит;
174
-
175
- КонецФункции
176
156
177
157
Функция ПолучитьМетрикуФайла (ВсегоСтрокКода , МетрикаКласса )
178
158
226
206
227
207
КонецФункции
228
208
229
- Функция КолонкиМетрик ()
230
-
231
- Возврат СтрРазделить ("complexity,elements,coveradelements,conditionals,coveredconditionals,statements,coveredstatements,methods,coveredmethods,testduration" , "," , Ложь );
232
-
233
- КонецФункции
234
-
235
- Функция ПолучитьТаблицуМетрик ()
236
-
237
- ТаблицаМетрик = Новый ТаблицаЗначений;
238
-
239
- МассивМетрик = КолонкиМетрик();
240
-
241
- Для каждого Метрика Из МассивМетрик Цикл
242
- ТаблицаМетрик.Колонки.Добавить(Метрика);
243
- КонецЦикла ;
244
-
245
- Возврат ТаблицаМетрик;
246
-
247
- КонецФункции
248
-
249
- Функция СформироватьМетрикиПоТаблице (ТаблицаМетрикКлассов , ПоляГруппировок = "" )
250
-
251
- ТаблицаВозврата = ТаблицаМетрикКлассов.Скопировать();
252
-
253
- МассивМетрик = КолонкиМетрик();
254
- СтрокаСуммирования = СтрСоединить (МассивМетрик, "," );
255
-
256
- ТаблицаВозврата.Свернуть(ПоляГруппировок, СтрокаСуммирования);
257
-
258
- Возврат ТаблицаВозврата;
259
-
260
- КонецФункции
261
-
262
209
Процедура ДобавитьЭлементXML (ИмяЭлемента , АтрибутыЭлемента )
263
210
264
211
ТекущаяЗаписьXML.ЗаписатьНачалоЭлемента(ИмяЭлемента);
277
224
278
225
КонецПроцедуры
279
226
280
- Процедура ДобавитьОписаниеПакета (ИмяПакета , КоличесnвоФайлов = 0 )
227
+ Процедура ДобавитьОписаниеПакета (ИмяПакета )
281
228
282
229
Атрибуты = Новый Структура("name" , ИмяПакета);
283
230
284
231
ДобавитьЭлементXML("package" , Атрибуты);
285
232
286
- // Если КоличесnвоФайлов > 0 Тогда
287
-
288
- // КонецЕсли;
289
-
290
233
КонецПроцедуры
291
234
292
235
Процедура ПриСозданииОбъекта (Знач КаталогИсходников , Знач ВходящееИмяПроекта )
293
236
ПутьКИсходникам = Новый Файл(КаталогИсходников).ПолноеИмя;
294
237
ИмяПроекта = ВходящееИмяПроекта;
295
238
КонецПроцедуры
296
239
297
- Функция ДатуВTimestamp (пДата = Неопределено )
298
- Возврат Формат (Число (? (ТипЗнч (пДата) = Тип ("Дата" ), пДата, ТекущаяДата ())- Дата ("19700101" )), "ЧН=0; ЧГ=0" );
299
- КонецФункции
240
+ Функция ДатуВTimestamp (ВходящаяДата = Неопределено )
241
+ Возврат Формат (Число ( ? (ТипЗнч (ВходящаяДата) = Тип ("Дата" ), ВходящаяДата, ТекущаяДата ())
242
+ - Дата ("19700101" )), "ЧН=0; ЧГ=0" );
243
+ КонецФункции
0 commit comments