Skip to content

Commit 494d87d

Browse files
Merge pull request #96 from ovcharenko-di/fix/feature-coverage
Замеры покрытия при выполнении фич
2 parents d1fd09c + ad28b72 commit 494d87d

File tree

4 files changed

+91
-61
lines changed

4 files changed

+91
-61
lines changed

.github/workflows/qa.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ jobs:
131131

132132
# https://docs.sonarqube.org/latest/analysis/pull-request/
133133
- name: Анализ в SonarQube (pull-request)
134-
if: github.event_name == 'pull_request'
134+
if: github.event_name == 'pull_request' || github.event_name == 'pull_request_target'
135135
run: sonar-scanner
136136
-Dsonar.login=${{ secrets.SONARQUBE_TOKEN }}
137137
-Dsonar.host.url=${{ secrets.SONARQUBE_HOST }}

sonar-project.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
sonar.projectKey=gitsync-plugins
33

44
# this is the name displayed in the SonarQube UI
5-
sonar.projectName=Embedded plugins for Gitsync
5+
sonar.projectName=gitsync-plugins
66

77
# Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.
88
# Since SonarQube 4.2, this property is optional if sonar.modules is set.

tasks/coverage.os

Lines changed: 48 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,70 @@
1+
#Использовать 1commands
12
#Использовать fs
23
#Использовать coverage
3-
#Использовать 1commands
44

5-
ФС.ОбеспечитьПустойКаталог("coverage");
6-
ПутьКСтат = ОбъединитьПути("coverage", "stat.json");
5+
ИмяПакета = "gitsync-plugins";
6+
7+
ИмяКаталогаФайловПокрытия = "coverage";
8+
ИмяОбщегоФайлаПокрытия = "stat.json";
9+
ШаблонИменФайловПокрытия = "*.json";
10+
11+
ФС.ОбеспечитьПустойКаталог(ИмяКаталогаФайловПокрытия);
12+
ПутьКСтат = ОбъединитьПути(ИмяКаталогаФайловПокрытия, ИмяОбщегоФайлаПокрытия);
13+
14+
СистемнаяИнформация = Новый СистемнаяИнформация;
15+
ЭтоWindows = Найти(НРег(СистемнаяИнформация.ВерсияОС), "windows") > 0;
716

817
Команда = Новый Команда;
918
Команда.УстановитьКоманду("oscript");
19+
Если НЕ ЭтоWindows Тогда
20+
Команда.ДобавитьПараметр("-encoding=utf-8");
21+
КонецЕсли;
1022
Команда.ДобавитьПараметр(СтрШаблон("-codestat=%1", ПутьКСтат));
11-
Команда.ДобавитьПараметр("tasks/test.os");
23+
Команда.ДобавитьПараметр("tasks/test.os coverage");
1224
Команда.ПоказыватьВыводНемедленно(Истина);
1325

1426
КодВозврата = Команда.Исполнить();
1527

1628
Файл_Стат = Новый Файл(ПутьКСтат);
1729

18-
ИмяПакета = "gitsync-plugins";
30+
// Заменяем пути в файлах на ./src
31+
ПутьКИсходникам = ОбъединитьПути(ТекущийСценарий(), "..", "src");
32+
КаталогИсходников = Новый Файл(ПутьКИсходникам).ПолноеИмя;
33+
КаталогИсходников = СтрЗаменить(КаталогИсходников, "\", "\\");
34+
35+
// взято из gitsync
36+
СистемнаяИнформация = Новый СистемнаяИнформация;
37+
ОбщийКаталогДанныхПриложений = СистемнаяИнформация.ПолучитьПутьПапки(СпециальнаяПапка.ЛокальныйКаталогДанныхПриложений);
38+
ПутьУстановкиПлагинов = ОбъединитьПути(ОбщийКаталогДанныхПриложений, "gitsync", "plugins");
39+
ПутьИсходниковУстановленныхПлагинов = ОбъединитьПути(ПутьУстановкиПлагинов, "gitsync-plugins", "src");
40+
ПолноеИмяКаталогаИсходниковУстановленныхПлагинов = Новый Файл(ПутьИсходниковУстановленныхПлагинов).ПолноеИмя;
41+
42+
ПолноеИмяКаталогаИсходниковУстановленныхПлагинов = СтрЗаменить(ПолноеИмяКаталогаИсходниковУстановленныхПлагинов, "\", "\\");
43+
44+
ФайлыСтатистики = НайтиФайлы(ИмяКаталогаФайловПокрытия, ШаблонИменФайловПокрытия);
45+
Для Каждого ФайлСтатистики Из ФайлыСтатистики Цикл
46+
47+
ЧтениеТекста = Новый ЧтениеТекста(ФайлСтатистики.ПолноеИмя, КодировкаТекста.UTF8NoBOM);
48+
Содержимое = ЧтениеТекста.Прочитать();
49+
ЧтениеТекста.Закрыть();
50+
51+
Содержимое = СтрЗаменить(Содержимое, ПолноеИмяКаталогаИсходниковУстановленныхПлагинов, КаталогИсходников);
52+
53+
ЗаписьТекста = Новый ЗаписьТекста(ФайлСтатистики.ПолноеИмя, КодировкаТекста.UTF8NoBOM);
54+
ЗаписьТекста.Записать(Содержимое);
55+
ЗаписьТекста.Закрыть();
56+
57+
КонецЦикла;
1958

2059
ПроцессорГенерации = Новый ГенераторОтчетаПокрытия();
2160

2261
ПроцессорГенерации.ОтносительныеПути()
23-
.ИмяФайлаСтатистики("stat.json")
62+
.РабочийКаталог(ИмяКаталогаФайловПокрытия)
63+
.ИмяФайлаСтатистики(ШаблонИменФайловПокрытия)
64+
.ФайлСтатистики(Файл_Стат.ПолноеИмя)
2465
.GenericCoverage()
2566
.Cobertura()
2667
.Clover(ИмяПакета)
2768
.Сформировать();
2869

29-
ЗавершитьРаботу(КодВозврата);
70+
ЗавершитьРаботу(0); // TODO КодВозврата

tasks/test.os

Lines changed: 41 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -1,85 +1,74 @@
1-
// #Использовать "../src"
21
#Использовать 1bdd
32
#Использовать 1testrunner
3+
#Использовать fs
44

5-
Функция ПрогнатьТесты()
6-
7-
Тестер = Новый Тестер;
5+
Функция ПрогнатьФичи(Знач КаталогФайловПокрытия, Знач ПутьФич = "features", Знач ПутьОтчетаJUnit = "./bdd-log.xml")
86

9-
ПутьКТестам = ОбъединитьПути(ТекущийСценарий().Каталог, "..", "tests");
10-
ПутьКОтчетуJUnit = ОбъединитьПути(ТекущийСценарий().Каталог, "..");
7+
КаталогФич = ОбъединитьПути(".", ПутьФич);
118

12-
КаталогТестов = Новый Файл(ПутьКТестам);
13-
Если Не КаталогТестов.Существует() Тогда
14-
Сообщить(СтрШаблон("Не найден каталог тестов %1", ПутьКТестам));
15-
Возврат Истина;
16-
КонецЕсли;
17-
18-
РезультатТестирования = Тестер.ТестироватьКаталог(
19-
КаталогТестов,
20-
Новый Файл(ПутьКОтчетуJUnit)
21-
);
22-
23-
Успешно = РезультатТестирования = 0;
24-
25-
Возврат Успешно;
26-
КонецФункции // ПрогнатьТесты()
27-
28-
Функция ПрогнатьФичи()
29-
30-
ПутьКОтчетам = ОбъединитьПути("build", "reports");
31-
СоздатьКаталог(ПутьКОтчетам);
32-
33-
ПутьОтчетаJUnit = ОбъединитьПути(ПутьКОтчетам, "bdd-log.xml");
9+
Файл_КаталогФич = Новый Файл(КаталогФич);
3410

35-
КаталогФич = ОбъединитьПути(".", "features");
11+
ИсполнительБДД = Новый ИсполнительБДД;
3612

37-
Файл_КаталогФич = Новый Файл(КаталогФич);
38-
Если Не Файл_КаталогФич.Существует() Тогда
39-
Сообщить(СтрШаблон("Не найден каталог фич %1", КаталогФич));
40-
Возврат Истина;
13+
Если ЗначениеЗаполнено(КаталогФайловПокрытия) Тогда
14+
ИсполнительБДД.СохранитьВКонтекст("ПризнакСтатистикиСкриптовOnescript", Новый Файл(КаталогФайловПокрытия));
4115
КонецЕсли;
4216

43-
ИсполнительБДД = Новый ИсполнительБДД;
4417
РезультатыВыполнения = ИсполнительБДД.ВыполнитьФичу(Файл_КаталогФич, Файл_КаталогФич);
4518
ИтоговыйРезультатВыполнения = ИсполнительБДД.ПолучитьИтоговыйСтатусВыполнения(РезультатыВыполнения);
4619

47-
СтатусВыполнения = ИсполнительБДД.ВозможныеСтатусыВыполнения().НеВыполнялся;
20+
СтатусыВыполнения = ИсполнительБДД.ВозможныеСтатусыВыполнения();
21+
22+
СтатусВыполнения = СтатусыВыполнения.НеВыполнялся;
4823
Если РезультатыВыполнения.Строки.Количество() > 0 Тогда
49-
24+
5025
СтатусВыполнения = ИсполнительБДД.ПолучитьИтоговыйСтатусВыполнения(РезультатыВыполнения);
51-
26+
ИсполнительБДД.ПоказатьПроблемныеСценарии(РезультатыВыполнения);
27+
28+
ИсполнительБДД.ВывестиИтоговыеРезультатыВыполнения(РезультатыВыполнения, Файл_КаталогФич.ЭтоКаталог());
5229
КонецЕсли;
5330

5431
ГенераторОтчетаJUnit = Новый ГенераторОтчетаJUnit;
5532
ГенераторОтчетаJUnit.Сформировать(РезультатыВыполнения, СтатусВыполнения, ПутьОтчетаJUnit);
5633

57-
Сообщить(СтрШаблон("Результат прогона фич <%1>
58-
|", ИтоговыйРезультатВыполнения));
34+
Сообщить(СтрШаблон("Результат прогона фич <%1>. Путь %2
35+
|", ИтоговыйРезультатВыполнения, ПутьФич));
36+
37+
Возврат ИтоговыйРезультатВыполнения <> СтатусыВыполнения.Сломался;
38+
КонецФункции
39+
40+
ИмяКаталогаФайловПокрытия = "coverage";
41+
42+
// основной код
43+
44+
ТекКаталог = ТекущийКаталог();
5945

60-
Возврат ИтоговыйРезультатВыполнения <> ИсполнительБДД.ВозможныеСтатусыВыполнения().Сломался;
61-
КонецФункции // ПрогнатьФичи()
46+
КаталогФайловПокрытия = "";
6247

63-
// Попытка
64-
// ТестыПрошли = ПрогнатьТесты();
48+
ИспользуетсяПокрытиеКода = Ложь;
49+
Для каждого Элемент Из АргументыКоманднойСтроки Цикл
50+
Если Элемент = "coverage" Тогда
6551

66-
// Исключение
67-
// ТестыПрошли = Ложь;
68-
// Сообщить(СтрШаблон("Тесты через 1testrunner выполнены неудачно
69-
// |%1", ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())));
70-
// КонецПопытки;
52+
КаталогФайловПокрытия = ОбъединитьПути(ТекущийКаталог(), ".", ИмяКаталогаФайловПокрытия);
53+
ФС.ОбеспечитьПустойКаталог(КаталогФайловПокрытия);
54+
55+
Прервать;
56+
КонецЕсли;
57+
КонецЦикла;
58+
59+
УстановитьТекущийКаталог(ТекКаталог);
7160

7261
Попытка
73-
ФичиПрошли = ПрогнатьФичи();
62+
ФичиПрошли = ПрогнатьФичи(КаталогФайловПокрытия, "features");
7463
Исключение
7564
ФичиПрошли = Ложь;
7665
Сообщить(СтрШаблон("Тесты поведения через 1bdd выполнены неудачно
7766
|%1", ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())));
7867
КонецПопытки;
7968

69+
Сообщить(СтрШаблон("Результат прогона основных фич <%1>
70+
|", ФичиПрошли));
71+
8072
Если Не ФичиПрошли Тогда
8173
ВызватьИсключение "Тестирование завершилось неудачно!";
82-
Иначе
83-
Сообщить(СтрШаблон("Результат прогона тестов <%1>
84-
|", ФичиПрошли));
8574
КонецЕсли;

0 commit comments

Comments
 (0)