Skip to content

Commit 43bb59e

Browse files
committed
Merge branch 'develop' of https://bitbucket.org/EvilBeaver/1script into develop
2 parents 2a03834 + f9f05af commit 43bb59e

File tree

3 files changed

+345
-21
lines changed

3 files changed

+345
-21
lines changed

BuildAll.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@
136136

137137
<Delete Files="@(RemoveXMLTestResult)" />
138138

139-
<Exec WorkingDirectory="$(MSBuildProjectDirectory)\tests" Command="$(OutputPathForDist)\oscript.exe $(MSBuildProjectDirectory)\tests\testrunner.os -run %(TestFiles.FullPath)" IgnoreExitCode="true"/>
139+
<Exec WorkingDirectory="$(MSBuildProjectDirectory)\tests" Command="$(OutputPathForDist)\oscript.exe $(MSBuildProjectDirectory)\tests\testrunner.os -run %(TestFiles.FullPath) xddReportPath ." IgnoreExitCode="true"/>
140140

141141
</Target>
142142

tests/testrunner.os

Lines changed: 61 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
Перем НаборТестов;
1010
Перем РезультатТестирования;
1111

12+
Перем ПутьЛогФайлаJUnit;
13+
1214
Перем НомерТестаДляЗапуска;
1315
Перем НаименованиеТестаДляЗапуска;
1416

@@ -21,11 +23,16 @@
2123
Перем НаборНереализованныхТестов;
2224

2325
Перем ВсегоТестов;
26+
Перем ВыводитьОшибкиПодробно;
2427

2528
//////////////////////////////////////////////////////////////////////////////
2629
// Программный интерфейс
2730
//
2831

32+
Процедура ПодробныеОписанияОшибок(Знач ВключитьПодробноеОписание) Экспорт
33+
ВыводитьОшибкиПодробно = ВключитьПодробноеОписание;
34+
КонецПроцедуры
35+
2936
//{ МЕТОДЫ ДЛЯ ПРОВЕРКИ ЗНАЧЕНИЙ (assertions).
3037

3138
Процедура Проверить(Условие, ДопСообщениеОшибки = "") Экспорт
@@ -129,7 +136,7 @@
129136

130137
//}
131138

132-
//{ Выполнение тестов - экспортные методы для файла-запускателя start.os
139+
//{ Выполнение тестов - экспортные методы
133140

134141
Процедура ВыполнитьТесты(МассивПараметров) Экспорт
135142
Инициализация();
@@ -146,14 +153,16 @@
146153

147154
//}
148155

149-
Функция ПолучитьПараметрыЗапуска(МассивПараметров)
156+
Функция ПолучитьПараметрыЗапуска(МассивПараметров) Экспорт
157+
Перем ПутьЛогФайла;
150158

151159
Если МассивПараметров.Количество() = 0 Тогда
152160
Возврат Неопределено;
153161
КонецЕсли;
154162

155163
НомерТестаДляЗапуска = Неопределено;
156164
НаименованиеТестаДляЗапуска = Неопределено;
165+
ПутьЛогФайла = Неопределено;
157166

158167
НомерПараметраПутьКТестам = -1;
159168

@@ -170,31 +179,44 @@
170179
НомерПараметраПутьКТестам = 0;
171180
КонецЕсли;
172181

182+
НомерОчередногоПараметра = НомерПараметраПутьКТестам;
183+
173184
Если КомандаЗапуска = СтруктураПараметровЗапуска.Запустить Тогда
174185
путьКТестам = МассивПараметров[НомерПараметраПутьКТестам];
175-
Если МассивПараметров.Количество() > НомерПараметраПутьКТестам+1 Тогда
176-
ИД_Теста = МассивПараметров[НомерПараметраПутьКТестам+1];
177-
178-
Если ВСтрокеСодержатсяТолькоЦифры(ИД_Теста) Тогда
179-
НомерТестаДляЗапуска = Число(ИД_Теста);
180-
Иначе
181-
НаименованиеТестаДляЗапуска = ИД_Теста;
186+
НомерОчередногоПараметра = НомерОчередногоПараметра + 1;
187+
Если МассивПараметров.Количество() > НомерОчередногоПараметра Тогда
188+
НомерОчередногоПараметра = НомерПараметраПутьКТестам+1;
189+
ИД_Теста = МассивПараметров[НомерОчередногоПараметра];
190+
191+
Если НРег(ИД_Теста) <> СтруктураПараметровЗапуска.Режим_ПутьЛогФайла Тогда
192+
Если ВСтрокеСодержатсяТолькоЦифры(ИД_Теста) Тогда
193+
НомерТестаДляЗапуска = Число(ИД_Теста);
194+
Иначе
195+
НаименованиеТестаДляЗапуска = ИД_Теста;
196+
КонецЕсли;
182197
КонецЕсли;
183198
КонецЕсли;
184199
ИначеЕсли КомандаЗапуска = СтруктураПараметровЗапуска.ЗапуститьКаталог Тогда
185200
путьКТестам = МассивПараметров[НомерПараметраПутьКТестам];
201+
НомерОчередногоПараметра = НомерОчередногоПараметра + 1;
186202
КонецЕсли;
187203

188-
Файл = Новый Файл(путьКТестам);
189-
Если Не Файл.Существует() Тогда
190-
ВызватьИсключение "Не найден файл/каталог "+путьКТестам;
204+
Если МассивПараметров.Количество() > НомерОчередногоПараметра и (КомандаЗапуска = СтруктураПараметровЗапуска.Запустить или КомандаЗапуска = СтруктураПараметровЗапуска.ЗапуститьКаталог ) Тогда
205+
Режим = НРег(МассивПараметров[НомерОчередногоПараметра]);
206+
Если Режим = СтруктураПараметровЗапуска.Режим_ПутьЛогФайла Тогда
207+
Если МассивПараметров.Количество() > НомерОчередногоПараметра+1 Тогда
208+
НомерОчередногоПараметра = НомерОчередногоПараметра+1;
209+
ПутьЛогФайла = МассивПараметров[НомерОчередногоПараметра];
210+
КонецЕсли;
211+
КонецЕсли;
191212
КонецЕсли;
192213

193214
ПараметрыЗапуска = Новый Структура;
194215
ПараметрыЗапуска.Вставить("Команда", КомандаЗапуска);
195216
ПараметрыЗапуска.Вставить("ПутьКТестам", путьКТестам);
196217
ПараметрыЗапуска.Вставить("НаименованиеТестаДляЗапуска", НаименованиеТестаДляЗапуска);
197218
ПараметрыЗапуска.Вставить("НомерТестаДляЗапуска", НомерТестаДляЗапуска);
219+
ПараметрыЗапуска.Вставить("ПутьЛогФайлаJUnit", ПутьЛогФайла);
198220

199221
Возврат ПараметрыЗапуска;
200222
КонецФункции
@@ -209,6 +231,12 @@
209231
путьКТестам = ПараметрыЗапуска.путьКТестам;
210232
НомерТестаДляЗапуска = ПараметрыЗапуска.НомерТестаДляЗапуска;
211233
НаименованиеТестаДляЗапуска = ПараметрыЗапуска.НаименованиеТестаДляЗапуска;
234+
ПутьЛогФайлаJUnit = ПараметрыЗапуска.ПутьЛогФайлаJUnit;
235+
236+
Файл = Новый Файл(путьКТестам);
237+
Если Не Файл.Существует() Тогда
238+
ВызватьИсключение "Не найден файл/каталог "+путьКТестам;
239+
КонецЕсли;
212240

213241
Если КомандаЗапуска = СтруктураПараметровЗапуска.Запустить Тогда
214242
Пути.Добавить(ПутьКТестам);
@@ -217,7 +245,7 @@
217245
ИначеЕсли КомандаЗапуска = СтруктураПараметровЗапуска.ЗапуститьКаталог Тогда
218246
Файлы = НайтиФайлы(ПутьКТестам, "*.os", Истина);
219247
Для Каждого Файл Из Файлы Цикл
220-
Если Файл.ИмяБезРасширения <> "testrunner" И Файл.ИмяБезРасширения <> "start" Тогда
248+
Если Файл.ИмяБезРасширения <> "testrunner" Тогда
221249
Пути.Добавить(Файл.ПолноеИмя);
222250
КонецЕсли;
223251
КонецЦикла;
@@ -249,12 +277,14 @@
249277
Возврат Истина;
250278
КонецФункции
251279

252-
Процедура СоздатьСтруктуруПараметровЗапуска()
280+
Функция СоздатьСтруктуруПараметровЗапуска() Экспорт
253281
СтруктураПараметровЗапуска = Новый Структура;
254282
СтруктураПараметровЗапуска.Вставить("Запустить", НРег("-run"));
255283
СтруктураПараметровЗапуска.Вставить("ЗапуститьКаталог", НРег("-runall"));
256284
СтруктураПараметровЗапуска.Вставить("ПоказатьСписок", НРег("-show"));
257-
КонецПроцедуры
285+
СтруктураПараметровЗапуска.Вставить("Режим_ПутьЛогФайла", НРег("xddReportPath"));
286+
Возврат СтруктураПараметровЗапуска;
287+
КонецФункции
258288

259289
Функция ЗагрузитьТесты()
260290
Перем НомерТестаСохр;
@@ -349,8 +379,11 @@
349379
НаборНереализованныхТестов = Новый Соответствие;
350380
ДатаНачала = ТекущаяДата();
351381

352-
ЗаписьXML = Неопределено;
353-
НачатьЗаписьВФайлОтчетаТестированияВФорматеJUnitXML(ЗаписьXML);
382+
СоздаватьОтчетТестированияВФорматеJUnitXML = ЗначениеЗаполнено(ПутьЛогФайлаJUnit);
383+
Если СоздаватьОтчетТестированияВФорматеJUnitXML Тогда
384+
ЗаписьXML = Неопределено;
385+
НачатьЗаписьВФайлОтчетаТестированияВФорматеJUnitXML(ЗаписьXML);
386+
КонецЕсли;
354387

355388
Для Сч = 0 По НаборТестов.Количество() - 1 Цикл
356389
ОписаниеТеста = НаборТестов[Сч];
@@ -369,7 +402,9 @@
369402

370403
ВывестиЛогТестирования();
371404

372-
ЗавершитьЗаписьВФайлОтчетаТестированияВФорматеJUnitXML(ЗаписьXML, ДатаНачала);
405+
Если СоздаватьОтчетТестированияВФорматеJUnitXML Тогда
406+
ЗавершитьЗаписьВФайлОтчетаТестированияВФорматеJUnitXML(ЗаписьXML, ДатаНачала);
407+
КонецЕсли;
373408
КонецЕсли;
374409
КонецФункции
375410

@@ -498,7 +533,7 @@
498533
КонецПроцедуры
499534

500535
Функция ПутьФайлаОтчетаТестированияВФорматеJUnitXML()
501-
Возврат ТекущийКаталог();
536+
Возврат ?(ЗначениеЗаполнено(ПутьЛогФайлаJUnit), ПутьЛогФайлаJUnit, ТекущийКаталог());
502537
КонецФункции
503538

504539
Функция ИмяТекущегоТеста(ПолныйПуть)
@@ -532,6 +567,9 @@
532567
// ВывестиОшибку("Не найден тестовый метод "+ИмяМетода+" - тест <"+ИмяМетода+">, файл <"+ОписаниеТеста.ПолноеИмя+">: "+Символы.ПС+" "+текстОшибки);
533568
// Рез = ЗначенияСостоянияТестов.НеРеализован;
534569
Иначе
570+
Если ВыводитьОшибкиПодробно Тогда
571+
текстОшибки = ИнфоОшибки.ПодробноеОписаниеОшибки();
572+
КонецЕсли;
535573
Рез = ВывестиОшибкуВыполненияТеста(ЗначенияСостоянияТестов.Сломался, "", ОписаниеТеста, текстОшибки, ИнфоОшибки);
536574
КонецЕсли;
537575
КонецПопытки;
@@ -739,7 +777,7 @@
739777
Возврат Символы.ПС + ДопСообщениеОшибки;
740778
КонецФункции
741779

742-
Функция ВСтрокеСодержатсяТолькоЦифры(Знач ИсходнаяСтрока)
780+
Функция ВСтрокеСодержатсяТолькоЦифры(Знач ИсходнаяСтрока) Экспорт
743781

744782
рез = Ложь;
745783
ДлинаСтроки = СтрДлина(ИсходнаяСтрока);
@@ -749,6 +787,7 @@
749787
рез = Истина;
750788
Иначе
751789
рез = Ложь;
790+
Прервать;
752791
КонецЕсли;
753792
КонецЦикла;
754793
Возврат рез;
@@ -811,6 +850,8 @@
811850
РезультатТестирования = ЗначенияСостоянияТестов.НеВыполнялся;
812851
КонецПроцедуры
813852

853+
ВыводитьОшибкиПодробно = Ложь;
854+
814855
ВыполнитьТесты(АргументыКоманднойСтроки);
815856

816857
ЗавершитьРаботу(ПолучитьРезультатТестирования());

0 commit comments

Comments
 (0)