|
14 | 14 |
|
15 | 15 | #Использовать asserts |
16 | 16 | #Использовать fs |
| 17 | +#Использовать coveragebsl |
17 | 18 |
|
18 | 19 | #Область ОписаниеПеременных |
19 | 20 |
|
|
98 | 99 | Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "--ibsrv", |
99 | 100 | "Запуск команды с использованием утилиты ibsrv"); |
100 | 101 |
|
| 102 | + Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--coverage-path", |
| 103 | + "Путь к файлу для записи сбора покрытия"); |
| 104 | + |
101 | 105 | Парсер.ДобавитьКоманду(ОписаниеКоманды); |
102 | 106 |
|
103 | 107 | КонецПроцедуры |
|
113 | 117 | Лог = ОбщиеМетоды.ЛогКоманды(ДополнительныеПараметры); |
114 | 118 |
|
115 | 119 | ПараметрыАвтономногоСервера = ОбщиеМетоды.НовыеПараметрыАвтономногоСервера(); |
| 120 | + УстановитьРежимОтладкиIbsrv(ПараметрыАвтономногоСервера, ПараметрыКоманды); |
116 | 121 |
|
117 | 122 | Действие = Новый Действие(ЭтотОбъект, "ВыполнитьТестирование"); |
118 | 123 | Возврат ОбщиеМетоды.ВыполнитьКомандуСУчетомIbsrv(ПараметрыКоманды, Действие, ПараметрыАвтономногоСервера); |
|
149 | 154 | ПолныйПуть = ОбщиеМетоды.ПолныйПуть(ПолныйПуть); |
150 | 155 | КонецЕсли; |
151 | 156 |
|
| 157 | + ДополнительныеПараметры = ПараметрыКоманды["--additional"]; |
| 158 | + Если ДанныеПодключения.Свойство("АдресОтладки") Тогда |
| 159 | + |
| 160 | + СписокПараметров = Новый Массив; |
| 161 | + СписокПараметров.Добавить(ПараметрыКоманды["--additional"]); |
| 162 | + СписокПараметров.Добавить("/DEBUG -http -attach"); |
| 163 | + СписокПараметров.Добавить(СтрШаблон("/DEBUGGERURL %1", ДанныеПодключения.АдресОтладки)); |
| 164 | + |
| 165 | + ДополнительныеПараметры = СтрСоединить(СписокПараметров, " "); |
| 166 | + |
| 167 | + СессияПокрытия = НачатьСборПокрытия(ДанныеПодключения); |
| 168 | + |
| 169 | + Иначе |
| 170 | + ДополнительныеПараметры = ПараметрыКоманды["--additional"]; |
| 171 | + СессияПокрытия = Неопределено; |
| 172 | + КонецЕсли; |
| 173 | + |
152 | 174 | Попытка |
153 | 175 | ЗапуститьТестироватьЮнит( |
154 | 176 | ПолныйПуть, |
|
158 | 180 | ОбщиеМетоды.ПолныйПуть(ПараметрыКоманды["--pathxunit"]), ЗапускатьТолстыйКлиент, |
159 | 181 | ОбщиеМетоды.ПолныйПуть(ПараметрыКоманды["--xddConfig"]), |
160 | 182 | ОжидатьЗавершения, |
161 | | - ПараметрыКоманды["--additional"], |
| 183 | + ДополнительныеПараметры, |
162 | 184 | ПараметрыКоманды["--config-tests"], |
163 | 185 | НастройкиТестКлиента, |
164 | 186 | ПараметрыКоманды["--xdddebug"], |
165 | 187 | Не ПараметрыКоманды["--no-shutdown"] |
166 | 188 | ); |
167 | 189 | Исключение |
168 | 190 | МенеджерКонфигуратора.Деструктор(); |
| 191 | + ЗавершитьСборПокрытия(СессияПокрытия, ПараметрыКоманды["--coverage-path"]); |
| 192 | + |
169 | 193 | ВызватьИсключение; |
170 | 194 | КонецПопытки; |
171 | 195 |
|
172 | 196 | МенеджерКонфигуратора.Деструктор(); |
| 197 | + ЗавершитьСборПокрытия(СессияПокрытия, ПараметрыКоманды["--coverage-path"]); |
173 | 198 |
|
174 | 199 | Возврат МенеджерКомандПриложения.РезультатыКоманд().Успех; |
175 | 200 | КонецФункции |
|
379 | 404 | КонецЕсли; |
380 | 405 | КонецПроцедуры |
381 | 406 |
|
| 407 | +Процедура УстановитьРежимОтладкиIbsrv(ПараметрыАвтономногоСервера, ПараметрыКоманды) |
| 408 | + |
| 409 | + ИспользоватьIbsrv = ПараметрыКоманды["--ibsrv"]; |
| 410 | + ФайлСбораПокрытия = ПараметрыКоманды["--coverage-path"]; |
| 411 | + Если ЗначениеЗаполнено(ФайлСбораПокрытия) И Не ИспользоватьIbsrv Тогда |
| 412 | + Лог.Предупреждение("Сбор покрытия реализован только при использовании ibsrv!"); |
| 413 | + Возврат; |
| 414 | + КонецЕсли; |
| 415 | + |
| 416 | + Если ЗначениеЗаполнено(ФайлСбораПокрытия) Тогда |
| 417 | + Лог.Отладка("Установлен режим использования отладки для ibsrv"); |
| 418 | + ПараметрыАвтономногоСервера.ИспользоватьОтладку = Истина; |
| 419 | + КонецЕсли; |
| 420 | + |
| 421 | +КонецПроцедуры |
| 422 | + |
| 423 | +Функция НачатьСборПокрытия(ДанныеПодключения) |
| 424 | + |
| 425 | + ИмяИнформационнойБазы = "DefAlias"; |
| 426 | + ПарольОтладчика = ""; |
| 427 | + |
| 428 | + МенеджерПокрытия = Новый МенеджерПокрытия(ДанныеПодключения.АдресОтладки); |
| 429 | + МенеджерПокрытия.ПроверитьСоединение(); |
| 430 | + СессияПокрытия = МенеджерПокрытия.НоваяСессияПокрытия(ИмяИнформационнойБазы); |
| 431 | + СессияПокрытия.Подключить(ПарольОтладчика); |
| 432 | + СессияПокрытия.НачатьСборПокрытия(); |
| 433 | + |
| 434 | + Возврат СессияПокрытия; |
| 435 | + |
| 436 | +КонецФункции |
| 437 | + |
| 438 | +Процедура ЗавершитьСборПокрытия(СессияПокрытия, ФайлСбораПокрытия) |
| 439 | + |
| 440 | + Если СессияПокрытия = Неопределено Тогда |
| 441 | + Возврат; |
| 442 | + КонецЕсли; |
| 443 | + |
| 444 | + ДанныеПокрытия = СессияПокрытия.ЗавершитьСборПокрытия(); |
| 445 | + СессияПокрытия.Отключить(); |
| 446 | + |
| 447 | + ЗаписаноСекунд = ДанныеПокрытия.ОбщаяПродолжительность/1000000; |
| 448 | + |
| 449 | + Лог.Информация("Записанное время в покрытии: %1 секунд", ЗаписаноСекунд); |
| 450 | + Лог.Информация("Количество модулей в покрытии: %1", ДанныеПокрытия.Данные.Количество()); |
| 451 | + |
| 452 | + ЗаписьJSON = Новый ЗаписьJSON(); |
| 453 | + ЗаписьJSON.ОткрытьФайл(ФайлСбораПокрытия); |
| 454 | + ДанныеПокрытия.СериализоватьJSON(ЗаписьJSON); |
| 455 | + ЗаписьJSON.Закрыть(); |
| 456 | + |
| 457 | +КонецПроцедуры |
| 458 | + |
382 | 459 | #КонецОбласти |
0 commit comments