|
9 | 9 | Перем НаборТестов; |
10 | 10 | Перем РезультатТестирования; |
11 | 11 |
|
| 12 | +Перем ПутьЛогФайлаJUnit; |
| 13 | + |
12 | 14 | Перем НомерТестаДляЗапуска; |
13 | 15 | Перем НаименованиеТестаДляЗапуска; |
14 | 16 |
|
|
21 | 23 | Перем НаборНереализованныхТестов; |
22 | 24 |
|
23 | 25 | Перем ВсегоТестов; |
| 26 | +Перем ВыводитьОшибкиПодробно; |
24 | 27 |
|
25 | 28 | ////////////////////////////////////////////////////////////////////////////// |
26 | 29 | // Программный интерфейс |
27 | 30 | // |
28 | 31 |
|
| 32 | +Процедура ПодробныеОписанияОшибок(Знач ВключитьПодробноеОписание) Экспорт |
| 33 | + ВыводитьОшибкиПодробно = ВключитьПодробноеОписание; |
| 34 | +КонецПроцедуры |
| 35 | + |
29 | 36 | //{ МЕТОДЫ ДЛЯ ПРОВЕРКИ ЗНАЧЕНИЙ (assertions). |
30 | 37 |
|
31 | 38 | Процедура Проверить(Условие, ДопСообщениеОшибки = "") Экспорт |
|
129 | 136 |
|
130 | 137 | //} |
131 | 138 |
|
132 | | -//{ Выполнение тестов - экспортные методы для файла-запускателя start.os |
| 139 | +//{ Выполнение тестов - экспортные методы |
133 | 140 |
|
134 | 141 | Процедура ВыполнитьТесты(МассивПараметров) Экспорт |
135 | 142 | Инициализация(); |
|
146 | 153 |
|
147 | 154 | //} |
148 | 155 |
|
149 | | -Функция ПолучитьПараметрыЗапуска(МассивПараметров) |
| 156 | +Функция ПолучитьПараметрыЗапуска(МассивПараметров) Экспорт |
| 157 | + Перем ПутьЛогФайла; |
150 | 158 |
|
151 | 159 | Если МассивПараметров.Количество() = 0 Тогда |
152 | 160 | Возврат Неопределено; |
153 | 161 | КонецЕсли; |
154 | 162 |
|
155 | 163 | НомерТестаДляЗапуска = Неопределено; |
156 | 164 | НаименованиеТестаДляЗапуска = Неопределено; |
| 165 | + ПутьЛогФайла = Неопределено; |
157 | 166 |
|
158 | 167 | НомерПараметраПутьКТестам = -1; |
159 | 168 |
|
|
170 | 179 | НомерПараметраПутьКТестам = 0; |
171 | 180 | КонецЕсли; |
172 | 181 |
|
| 182 | + НомерОчередногоПараметра = НомерПараметраПутьКТестам; |
| 183 | + |
173 | 184 | Если КомандаЗапуска = СтруктураПараметровЗапуска.Запустить Тогда |
174 | 185 | путьКТестам = МассивПараметров[НомерПараметраПутьКТестам]; |
175 | | - Если МассивПараметров.Количество() > НомерПараметраПутьКТестам+1 Тогда |
176 | | - ИД_Теста = МассивПараметров[НомерПараметраПутьКТестам+1]; |
177 | | - |
178 | | - Если ВСтрокеСодержатсяТолькоЦифры(ИД_Теста) Тогда |
179 | | - НомерТестаДляЗапуска = Число(ИД_Теста); |
180 | | - Иначе |
181 | | - НаименованиеТестаДляЗапуска = ИД_Теста; |
| 186 | + НомерОчередногоПараметра = НомерОчередногоПараметра + 1; |
| 187 | + Если МассивПараметров.Количество() > НомерОчередногоПараметра Тогда |
| 188 | + НомерОчередногоПараметра = НомерПараметраПутьКТестам+1; |
| 189 | + ИД_Теста = МассивПараметров[НомерОчередногоПараметра]; |
| 190 | + |
| 191 | + Если НРег(ИД_Теста) <> СтруктураПараметровЗапуска.Режим_ПутьЛогФайла Тогда |
| 192 | + Если ВСтрокеСодержатсяТолькоЦифры(ИД_Теста) Тогда |
| 193 | + НомерТестаДляЗапуска = Число(ИД_Теста); |
| 194 | + Иначе |
| 195 | + НаименованиеТестаДляЗапуска = ИД_Теста; |
| 196 | + КонецЕсли; |
182 | 197 | КонецЕсли; |
183 | 198 | КонецЕсли; |
184 | 199 | ИначеЕсли КомандаЗапуска = СтруктураПараметровЗапуска.ЗапуститьКаталог Тогда |
185 | 200 | путьКТестам = МассивПараметров[НомерПараметраПутьКТестам]; |
| 201 | + НомерОчередногоПараметра = НомерОчередногоПараметра + 1; |
186 | 202 | КонецЕсли; |
187 | 203 |
|
188 | | - Файл = Новый Файл(путьКТестам); |
189 | | - Если Не Файл.Существует() Тогда |
190 | | - ВызватьИсключение "Не найден файл/каталог "+путьКТестам; |
| 204 | + Если МассивПараметров.Количество() > НомерОчередногоПараметра и (КомандаЗапуска = СтруктураПараметровЗапуска.Запустить или КомандаЗапуска = СтруктураПараметровЗапуска.ЗапуститьКаталог ) Тогда |
| 205 | + Режим = НРег(МассивПараметров[НомерОчередногоПараметра]); |
| 206 | + Если Режим = СтруктураПараметровЗапуска.Режим_ПутьЛогФайла Тогда |
| 207 | + Если МассивПараметров.Количество() > НомерОчередногоПараметра+1 Тогда |
| 208 | + НомерОчередногоПараметра = НомерОчередногоПараметра+1; |
| 209 | + ПутьЛогФайла = МассивПараметров[НомерОчередногоПараметра]; |
| 210 | + КонецЕсли; |
| 211 | + КонецЕсли; |
191 | 212 | КонецЕсли; |
192 | 213 |
|
193 | 214 | ПараметрыЗапуска = Новый Структура; |
194 | 215 | ПараметрыЗапуска.Вставить("Команда", КомандаЗапуска); |
195 | 216 | ПараметрыЗапуска.Вставить("ПутьКТестам", путьКТестам); |
196 | 217 | ПараметрыЗапуска.Вставить("НаименованиеТестаДляЗапуска", НаименованиеТестаДляЗапуска); |
197 | 218 | ПараметрыЗапуска.Вставить("НомерТестаДляЗапуска", НомерТестаДляЗапуска); |
| 219 | + ПараметрыЗапуска.Вставить("ПутьЛогФайлаJUnit", ПутьЛогФайла); |
198 | 220 |
|
199 | 221 | Возврат ПараметрыЗапуска; |
200 | 222 | КонецФункции |
|
209 | 231 | путьКТестам = ПараметрыЗапуска.путьКТестам; |
210 | 232 | НомерТестаДляЗапуска = ПараметрыЗапуска.НомерТестаДляЗапуска; |
211 | 233 | НаименованиеТестаДляЗапуска = ПараметрыЗапуска.НаименованиеТестаДляЗапуска; |
| 234 | + ПутьЛогФайлаJUnit = ПараметрыЗапуска.ПутьЛогФайлаJUnit; |
| 235 | + |
| 236 | + Файл = Новый Файл(путьКТестам); |
| 237 | + Если Не Файл.Существует() Тогда |
| 238 | + ВызватьИсключение "Не найден файл/каталог "+путьКТестам; |
| 239 | + КонецЕсли; |
212 | 240 |
|
213 | 241 | Если КомандаЗапуска = СтруктураПараметровЗапуска.Запустить Тогда |
214 | 242 | Пути.Добавить(ПутьКТестам); |
|
217 | 245 | ИначеЕсли КомандаЗапуска = СтруктураПараметровЗапуска.ЗапуститьКаталог Тогда |
218 | 246 | Файлы = НайтиФайлы(ПутьКТестам, "*.os", Истина); |
219 | 247 | Для Каждого Файл Из Файлы Цикл |
220 | | - Если Файл.ИмяБезРасширения <> "testrunner" И Файл.ИмяБезРасширения <> "start" Тогда |
| 248 | + Если Файл.ИмяБезРасширения <> "testrunner" Тогда |
221 | 249 | Пути.Добавить(Файл.ПолноеИмя); |
222 | 250 | КонецЕсли; |
223 | 251 | КонецЦикла; |
|
249 | 277 | Возврат Истина; |
250 | 278 | КонецФункции |
251 | 279 |
|
252 | | -Процедура СоздатьСтруктуруПараметровЗапуска() |
| 280 | +Функция СоздатьСтруктуруПараметровЗапуска() Экспорт |
253 | 281 | СтруктураПараметровЗапуска = Новый Структура; |
254 | 282 | СтруктураПараметровЗапуска.Вставить("Запустить", НРег("-run")); |
255 | 283 | СтруктураПараметровЗапуска.Вставить("ЗапуститьКаталог", НРег("-runall")); |
256 | 284 | СтруктураПараметровЗапуска.Вставить("ПоказатьСписок", НРег("-show")); |
257 | | -КонецПроцедуры |
| 285 | + СтруктураПараметровЗапуска.Вставить("Режим_ПутьЛогФайла", НРег("xddReportPath")); |
| 286 | + Возврат СтруктураПараметровЗапуска; |
| 287 | +КонецФункции |
258 | 288 |
|
259 | 289 | Функция ЗагрузитьТесты() |
260 | 290 | Перем НомерТестаСохр; |
|
349 | 379 | НаборНереализованныхТестов = Новый Соответствие; |
350 | 380 | ДатаНачала = ТекущаяДата(); |
351 | 381 |
|
352 | | - ЗаписьXML = Неопределено; |
353 | | - НачатьЗаписьВФайлОтчетаТестированияВФорматеJUnitXML(ЗаписьXML); |
| 382 | + СоздаватьОтчетТестированияВФорматеJUnitXML = ЗначениеЗаполнено(ПутьЛогФайлаJUnit); |
| 383 | + Если СоздаватьОтчетТестированияВФорматеJUnitXML Тогда |
| 384 | + ЗаписьXML = Неопределено; |
| 385 | + НачатьЗаписьВФайлОтчетаТестированияВФорматеJUnitXML(ЗаписьXML); |
| 386 | + КонецЕсли; |
354 | 387 |
|
355 | 388 | Для Сч = 0 По НаборТестов.Количество() - 1 Цикл |
356 | 389 | ОписаниеТеста = НаборТестов[Сч]; |
|
369 | 402 |
|
370 | 403 | ВывестиЛогТестирования(); |
371 | 404 |
|
372 | | - ЗавершитьЗаписьВФайлОтчетаТестированияВФорматеJUnitXML(ЗаписьXML, ДатаНачала); |
| 405 | + Если СоздаватьОтчетТестированияВФорматеJUnitXML Тогда |
| 406 | + ЗавершитьЗаписьВФайлОтчетаТестированияВФорматеJUnitXML(ЗаписьXML, ДатаНачала); |
| 407 | + КонецЕсли; |
373 | 408 | КонецЕсли; |
374 | 409 | КонецФункции |
375 | 410 |
|
|
498 | 533 | КонецПроцедуры |
499 | 534 |
|
500 | 535 | Функция ПутьФайлаОтчетаТестированияВФорматеJUnitXML() |
501 | | - Возврат ТекущийКаталог(); |
| 536 | + Возврат ?(ЗначениеЗаполнено(ПутьЛогФайлаJUnit), ПутьЛогФайлаJUnit, ТекущийКаталог()); |
502 | 537 | КонецФункции |
503 | 538 |
|
504 | 539 | Функция ИмяТекущегоТеста(ПолныйПуть) |
|
532 | 567 | // ВывестиОшибку("Не найден тестовый метод "+ИмяМетода+" - тест <"+ИмяМетода+">, файл <"+ОписаниеТеста.ПолноеИмя+">: "+Символы.ПС+" "+текстОшибки); |
533 | 568 | // Рез = ЗначенияСостоянияТестов.НеРеализован; |
534 | 569 | Иначе |
| 570 | + Если ВыводитьОшибкиПодробно Тогда |
| 571 | + текстОшибки = ИнфоОшибки.ПодробноеОписаниеОшибки(); |
| 572 | + КонецЕсли; |
535 | 573 | Рез = ВывестиОшибкуВыполненияТеста(ЗначенияСостоянияТестов.Сломался, "", ОписаниеТеста, текстОшибки, ИнфоОшибки); |
536 | 574 | КонецЕсли; |
537 | 575 | КонецПопытки; |
|
739 | 777 | Возврат Символы.ПС + ДопСообщениеОшибки; |
740 | 778 | КонецФункции |
741 | 779 |
|
742 | | -Функция ВСтрокеСодержатсяТолькоЦифры(Знач ИсходнаяСтрока) |
| 780 | +Функция ВСтрокеСодержатсяТолькоЦифры(Знач ИсходнаяСтрока) Экспорт |
743 | 781 |
|
744 | 782 | рез = Ложь; |
745 | 783 | ДлинаСтроки = СтрДлина(ИсходнаяСтрока); |
|
749 | 787 | рез = Истина; |
750 | 788 | Иначе |
751 | 789 | рез = Ложь; |
| 790 | + Прервать; |
752 | 791 | КонецЕсли; |
753 | 792 | КонецЦикла; |
754 | 793 | Возврат рез; |
|
811 | 850 | РезультатТестирования = ЗначенияСостоянияТестов.НеВыполнялся; |
812 | 851 | КонецПроцедуры |
813 | 852 |
|
| 853 | +ВыводитьОшибкиПодробно = Ложь; |
| 854 | + |
814 | 855 | ВыполнитьТесты(АргументыКоманднойСтроки); |
815 | 856 |
|
816 | 857 | ЗавершитьРаботу(ПолучитьРезультатТестирования()); |
0 commit comments