|
10 | 10 | // ПутьКОтчетуClover - Строка - Путь к файлу отчета
|
11 | 11 | //
|
12 | 12 | Процедура Сформировать(Знач ДанныеСтатистикиПокрытия, Знач ПутьКОтчетуClover) Экспорт
|
13 |
| - |
14 |
| - Возврат; |
15 | 13 |
|
16 | 14 | ДанныеПокрытия = ДанныеСтатистикиПокрытия;
|
17 | 15 |
|
|
31 | 29 | ВсегоФайловВПакете = 0;
|
32 | 30 | МетрикаПакета = Новый Структура;
|
33 | 31 |
|
34 |
| - Для Каждого Файл Из ДанныеПокрытия Цикл |
35 |
| - |
36 |
| - ДанныеФайла = Файл.Значение; |
| 32 | + Файлы = ДанныеПокрытия.Скопировать(, "ПутьКФайлу"); |
| 33 | + Файлы.Свернуть("ПутьКФайлу"); |
| 34 | + Файлы = Файлы.ВыгрузитьКолонку("ПутьКФайлу"); |
37 | 35 |
|
38 |
| - ПутьКФайлу = ДанныеФайла.Получить("#path"); |
| 36 | + Для Каждого ПутьКФайлу Из Файлы Цикл |
39 | 37 |
|
40 | 38 | ВсегоФайловВПакете = ВсегоФайловВПакете + 1;
|
41 | 39 |
|
|
45 | 43 | ТекущаяЗаписьXML.ЗаписатьНачалоЭлемента("file");
|
46 | 44 | ТекущаяЗаписьXML.ЗаписатьАтрибут("name", ИмяФайла);
|
47 | 45 | ТекущаяЗаписьXML.ЗаписатьАтрибут("path", КаталогФайла);
|
48 |
| - |
49 |
| - КоличествоМетодов = 0; |
| 46 | + |
| 47 | + КоличествоМетодов = 0; |
50 | 48 | КоличествоПокрытыхМетодов = 0;
|
51 |
| - ОбщееВремяВыполнения = 0; |
52 |
| - ВсегоСтрокВФайле = 0; |
53 |
| - ВсегоЭлементов = 0; |
54 |
| - ВсегоПокрытоЭлементов = 0; |
55 |
| - |
56 |
| - Для Каждого КлючИЗначение Из ДанныеФайла Цикл |
57 |
| - |
58 |
| - ИмяМетода = КлючИЗначение.Ключ; |
59 |
| - |
60 |
| - Если ИмяМетода = "#path" Тогда |
61 |
| - Продолжить; |
62 |
| - КонецЕсли; |
63 |
| - |
64 |
| - КоличествоМетодов = КоличествоМетодов + 1; |
| 49 | + ОбщееВремяВыполнения = 0; |
| 50 | + ВсегоСтрокВФайле = 0; |
| 51 | + ВсегоЭлементов = 0; |
| 52 | + ВсегоПокрытоЭлементов = 0; |
65 | 53 |
|
66 |
| - ПокрытыхСтрокВМетоде = 0; |
| 54 | + ДанныеФайла = ДанныеПокрытия.НайтиСтроки(Новый Структура("ПутьКФайлу", ПутьКФайлу)); |
67 | 55 |
|
68 |
| - ДанныеПроцедуры = КлючИЗначение.Значение; |
69 |
| - ВсегоЭлементовМетода = 0; |
70 |
| - ЗаписатьМетод = Не ИмяМетода = "$entry"; |
| 56 | + ТекущийМетод = Неопределено; |
71 | 57 |
|
72 |
| - Для Каждого ДанныеСтроки Из ДанныеПроцедуры Цикл |
73 |
| - |
74 |
| - ТипСтроки = "stmt"; |
75 |
| - Если ЗаписатьМетод Тогда |
76 |
| - ТипСтроки = "method"; |
77 |
| - ЗаписатьМетод = Ложь; |
78 |
| - КонецЕсли; |
| 58 | + Для Каждого СтрокаДанныхФайла Из ДанныеФайла Цикл |
79 | 59 |
|
80 |
| - ТекущаяЗаписьXML.ЗаписатьНачалоЭлемента("line"); |
81 |
| - |
82 |
| - ТекущаяЗаписьXML.ЗаписатьАтрибут("num", ДанныеСтроки.Ключ); |
83 |
| - ТекущаяЗаписьXML.ЗаписатьАтрибут("type", ТипСтроки); |
84 |
| - |
85 |
| - Покрыто = Число(ДанныеСтроки.Значение.Получить("count")) > 0; |
86 |
| - ТекущаяЗаписьXML.ЗаписатьАтрибут("count", ДанныеСтроки.Значение.Получить("count")); |
87 |
| - |
88 |
| - ТекущаяЗаписьXML.ЗаписатьКонецЭлемента(); // lineToCover |
89 |
| - |
90 |
| - Если Покрыто Тогда |
91 |
| - ПокрытыхСтрокВМетоде = ПокрытыхСтрокВМетоде + 1; |
92 |
| - КонецЕсли; |
| 60 | + ИмяМетода = СтрокаДанныхФайла.ИмяМетода; |
93 | 61 |
|
94 |
| - ВсегоЭлементовМетода = ВсегоЭлементовМетода + 1; |
| 62 | + Если ТекущийМетод <> ИмяМетода Тогда |
| 63 | + КоличествоМетодов = КоличествоМетодов + 1; |
| 64 | + ТекущийМетод = ИмяМетода; |
| 65 | + КонецЕсли; |
95 | 66 |
|
96 |
| - ОбщееВремяВыполнения = ОбщееВремяВыполнения + ДанныеСтроки.Значение.Получить("time"); |
| 67 | + ТипСтроки = ?(ИмяМетода = "$entry", "stmt", "method"); |
97 | 68 |
|
98 |
| - ВсегоСтрокВФайле = Макс(ВсегоСтрокВФайле, Число(ДанныеСтроки.Ключ)); |
| 69 | + ТекущаяЗаписьXML.ЗаписатьНачалоЭлемента("line"); |
99 | 70 |
|
100 |
| - КонецЦикла; |
| 71 | + ТекущаяЗаписьXML.ЗаписатьАтрибут("num", СтрокаДанныхФайла.СтрокаМодуля); |
| 72 | + ТекущаяЗаписьXML.ЗаписатьАтрибут("type", ТипСтроки); |
| 73 | + ТекущаяЗаписьXML.ЗаписатьАтрибут("count", СтрокаДанныхФайла.КоличествоВызовов); |
101 | 74 |
|
102 |
| - МетодПокрытПолностью = ДанныеПроцедуры.Количество() = ПокрытыхСтрокВМетоде; |
| 75 | + ТекущаяЗаписьXML.ЗаписатьКонецЭлемента(); // lineToCover |
103 | 76 |
|
104 |
| - Если МетодПокрытПолностью Тогда |
105 |
| - КоличествоПокрытыхМетодов = КоличествоПокрытыхМетодов + 1; |
106 |
| - КонецЕсли; |
| 77 | + ОбщееВремяВыполнения = ОбщееВремяВыполнения + СтрокаДанныхФайла.ВремяВыполнения; |
107 | 78 |
|
108 |
| - ВсегоЭлементов = ВсегоЭлементов + ВсегоЭлементовМетода; |
109 |
| - |
110 |
| - ВсегоПокрытоЭлементов = ВсегоПокрытоЭлементов + ПокрытыхСтрокВМетоде; |
| 79 | + ВсегоСтрокВФайле = Макс(ВсегоСтрокВФайле, СтрокаДанныхФайла.СтрокаМодуля); |
| 80 | + |
| 81 | + ВсегоЭлементов = ВсегоЭлементов + 1; |
| 82 | + ВсегоПокрытоЭлементов = ВсегоПокрытоЭлементов + СтрокаДанныхФайла.Покрыто; |
111 | 83 |
|
112 | 84 | КонецЦикла;
|
113 |
| - |
| 85 | + |
114 | 86 | ИмяКласса = ФайлПокрытия.ИмяБезРасширения;
|
115 | 87 | ТекущаяЗаписьXML.ЗаписатьНачалоЭлемента("class");
|
116 | 88 | ТекущаяЗаписьXML.ЗаписатьАтрибут("name", ИмяКласса);
|
117 |
| - МетрикаКласса = ПодготовитьМетрикиКласса(ВсегоЭлементов, |
118 |
| - ВсегоПокрытоЭлементов, |
119 |
| - КоличествоМетодов, |
120 |
| - КоличествоПокрытыхМетодов, |
121 |
| - ОбщееВремяВыполнения); |
| 89 | + МетрикаКласса = ПодготовитьМетрикиКласса( |
| 90 | + ВсегоЭлементов, |
| 91 | + ВсегоПокрытоЭлементов, |
| 92 | + КоличествоМетодов, |
| 93 | + КоличествоПокрытыхМетодов, |
| 94 | + ОбщееВремяВыполнения |
| 95 | + ); |
| 96 | + |
122 | 97 | ЗаписатьЭлементXML("metrics", МетрикаКласса);
|
123 | 98 | ТекущаяЗаписьXML.ЗаписатьКонецЭлемента(); // file
|
124 |
| - |
| 99 | + |
125 | 100 | ПолучитьМетрикуФайла(ВсегоСтрокВФайле, МетрикаКласса);
|
126 | 101 |
|
127 | 102 | ЗаписатьЭлементXML("metrics", МетрикаКласса);
|
128 | 103 | ТекущаяЗаписьXML.ЗаписатьКонецЭлемента(); // file
|
129 |
| - |
| 104 | + |
130 | 105 | ДобавитьМетрикуВМетрикуПакета(МетрикаПакета, МетрикаКласса);
|
131 | 106 |
|
132 | 107 | КонецЦикла;
|
|
0 commit comments