Skip to content

Commit 12a6323

Browse files
committed
Merge branch 'release/1.1.0'
2 parents 4593d72 + 050b078 commit 12a6323

File tree

5 files changed

+246
-14
lines changed

5 files changed

+246
-14
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
test-reports/*
22
*.ospx
3+
tests.xml

Jenkinsfile

+106
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
pipeline {
2+
agent none
3+
options {
4+
buildDiscarder(logRotator(numToKeepStr: '7'))
5+
skipDefaultCheckout()
6+
}
7+
8+
stages {
9+
stage('Тестирование кода пакета WIN') {
10+
11+
agent { label 'windows' }
12+
13+
steps {
14+
checkout scm
15+
16+
script {
17+
bat 'chcp 65001 > nul && opm install -l'
18+
19+
if( fileExists ('tasks/test.os') ){
20+
try {
21+
cmd("oscript tasks/test.os")
22+
junit 'tests.xml'
23+
} catch (Exception err) {
24+
junit 'tests.xml'
25+
//throw err;
26+
}
27+
}
28+
else
29+
echo 'no testing task'
30+
}
31+
32+
}
33+
34+
}
35+
36+
stage('Тестирование кода пакета LINUX') {
37+
38+
agent { label 'master' }
39+
40+
steps {
41+
echo 'under development'
42+
}
43+
44+
}
45+
46+
stage('Сборка пакета') {
47+
48+
agent { label 'windows' }
49+
50+
steps {
51+
checkout scm
52+
53+
bat 'erase /Q *.ospx'
54+
bat 'chcp 65001 > nul && call opm build .'
55+
56+
stash includes: '*.ospx', name: 'package'
57+
archiveArtifacts '*.ospx'
58+
}
59+
60+
}
61+
62+
stage('Публикация в хабе') {
63+
when {
64+
branch 'master'
65+
}
66+
agent { label 'master' }
67+
steps {
68+
sh 'rm -f *.ospx'
69+
unstash 'package'
70+
71+
sh '''
72+
artifact=`ls -1 *.ospx`
73+
basename=`echo $artifact | sed -r 's/(.+)-.*(.ospx)/\\1/'`
74+
cp $artifact $basename.ospx
75+
sudo rsync -rv *.ospx /var/www/hub.oscript.io/download/$basename/
76+
'''.stripIndent()
77+
}
78+
}
79+
80+
stage('Публикация в нестабильном хабе') {
81+
when {
82+
branch 'develop'
83+
}
84+
agent { label 'master' }
85+
steps {
86+
sh 'rm -f *.ospx'
87+
unstash 'package'
88+
89+
sh '''
90+
artifact=`ls -1 *.ospx`
91+
basename=`echo $artifact | sed -r 's/(.+)-.*(.ospx)/\\1/'`
92+
cp $artifact $basename.ospx
93+
sudo rsync -rv *.ospx /var/www/hub.oscript.io/dev-channel/$basename/
94+
'''.stripIndent()
95+
}
96+
}
97+
}
98+
}
99+
100+
def cmd(command) {
101+
if (isUnix()) {
102+
sh "${command}"
103+
} else {
104+
bat "chcp 65001\n${command}"
105+
}
106+
}

packagedef

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11

22
Описание.Имя("v8runner")
3-
.Версия("1.0.1")
3+
.Версия("1.1.0")
44
.ВерсияСреды("1.0.17")
55
.ЗависитОт("asserts", "0.4.0")
66
.ЗависитОт("fs", "0.5.0")
7-
.ЗависитОт("logos", "0.6.2")
7+
.ЗависитОт("logos", "1.0.2")
88
.ЗависитОт("tempfiles", "0.2.2")
99
.ЗависитОт("strings", "0.4.1")
10-
.ЗависитОт("1commands", "1.3.1")
10+
.ЗависитОт("1commands", "1.3.2")
1111
.ВключитьФайл("src")
1212
.ВключитьФайл("tests")
1313
.ВключитьФайл("lib.config")

src/v8runner.os

+58
Original file line numberDiff line numberDiff line change
@@ -775,6 +775,12 @@
775775

776776
КонецПроцедуры
777777

778+
// Выполнить обновление конфигурации, находящейся на поддержке, или объединение текущей конфигурации с файлом.
779+
//
780+
// Параметры:
781+
// КаталогВерсии - Строка - каталог, в котором должен быть файл 1cv8.cf или файл обновления 1cv8.cfu
782+
// ИспользоватьПолныйДистрибутив - Булево - Если Истина, ищется файл 1cv8.cfu, иначе ищется файл обновления 1cv8.cfu
783+
//
778784
Процедура ОбновитьКонфигурацию(Знач КаталогВерсии, Знач ИспользоватьПолныйДистрибутив = Ложь) Экспорт
779785

780786
ПараметрыЗапуска = СтандартныеПараметрыЗапускаКонфигуратора();
@@ -795,6 +801,58 @@
795801

796802
КонецПроцедуры
797803

804+
// Выполнить обновление конфигурации, находящейся на поддержке.
805+
// Выполнить объединение текущей конфигурации с файлом (с использованием файла настроек).
806+
//
807+
// Параметры:
808+
// ПутьФайлаКонфигурации - Строка - каталог, в котором должен быть файл 1cv8.cf или файл обновления 1cv8.cfu
809+
// ПутьФайлаНастроек - Строка - имя файла с настройками объединения конфигураций.
810+
// Значение по умолчанию - Неопределено, т.е. файл не передается
811+
// ВключитьВОбъединениеОбъектыПоНеразрешеннымСсылкам - Булево, Неопределено - флаг небходимости включения
812+
// в объединение объектов, не включенных в список объединяемых и отсутствующих в основной конфигурации.
813+
// Неопределено: по умолчанию флаг не передается.
814+
// Истина: включать объекты с неразрешенными ссылками в список объединяемых.
815+
// Ложь: очищать ссылки на объекты с неразрешенными ссылками.
816+
// ВывестиДваждыИзмененныеОбъекты – Булево - флаг вывести список всех дважды измененных свойств в файл для вывода служебных сообщений.
817+
// Значение по умолчанию - Ложь
818+
// Принудительно - Булево - флаг принудительного обновления.
819+
// Обновление будет производиться в случае наличия:
820+
// предупреждений об удаляемых объектах, на которые есть ссылки в объектах, не участвующих в объединении (такие объекты будут исключены из объединения).
821+
// предупреждений о наличии дважды измененных свойств, для которых не был выбран режим объединения (такие свойства будут объединены с настройками по умолчанию).
822+
// объектов, изменение которых запрещено правилами поддержки (такие объекты будут исключены из объединения).
823+
// предупреждений о применении настроек.
824+
// Если не указан, то объединение будет прервано в вышеуказанных случаях.
825+
// Значение по умолчанию - Ложь
826+
//
827+
Процедура ОбновитьКонфигурациюИзФайла(Знач ПутьФайлаКонфигурации, Знач ПутьФайлаНастроек = Неопределено,
828+
Знач ВключитьВОбъединениеОбъектыПоНеразрешеннымСсылкам = Неопределено,
829+
Знач Принудительно = Ложь, Знач ВывестиДваждыИзмененныеОбъекты = Ложь) Экспорт
830+
831+
ПараметрыЗапуска = СтандартныеПараметрыЗапускаКонфигуратора();
832+
833+
ПараметрыЗапуска.Добавить("/UpdateCfg " + ПутьФайлаКонфигурации);
834+
835+
Если ЗначениеЗаполнено(ПутьФайлаНастроек) Тогда
836+
ПараметрыЗапуска.Добавить("-Settings " + ОбернутьВКавычки(ПутьФайлаНастроек));
837+
КонецЕсли;
838+
839+
Если ВключитьВОбъединениеОбъектыПоНеразрешеннымСсылкам = Истина Тогда
840+
ПараметрыЗапуска.Добавить("-IncludeObjectsByUnresolvedRefs");
841+
ИначеЕсли ВключитьВОбъединениеОбъектыПоНеразрешеннымСсылкам = Ложь Тогда
842+
ПараметрыЗапуска.Добавить("-ClearUnresolvedRefs");
843+
КонецЕсли;
844+
845+
Если Принудительно Тогда
846+
ПараметрыЗапуска.Добавить("-force");
847+
КонецЕсли;
848+
Если ВывестиДваждыИзмененныеОбъекты Тогда
849+
ПараметрыЗапуска.Добавить("-DumpListOfTwiceChangedProperties");
850+
КонецЕсли;
851+
852+
ВыполнитьКоманду(ПараметрыЗапуска);
853+
854+
КонецПроцедуры
855+
798856
Процедура СнятьКонфигурациюСПоддержки(Знач Принудительно = Ложь) Экспорт
799857

800858
Параметры = СтандартныеПараметрыЗапускаКонфигуратора();

tasks/test.os

+78-11
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,86 @@
1+
#Использовать ".."
2+
#Использовать 1bdd
13
#Использовать 1testrunner
24

3-
Процедура ПровестиТестирование()
5+
Функция ПрогнатьТесты()
46

57
Тестер = Новый Тестер;
68

7-
КаталогПроекта = ОбъединитьПути(ТекущийСценарий().Каталог, "..");
8-
КаталогРезультатовТестов = Новый Файл(ОбъединитьПути(КаталогПроекта,"test-reports"));
9-
Если Не КаталогРезультатовТестов.Существует() Тогда
10-
СоздатьКаталог(КаталогРезультатовТестов.ПолноеИмя);
11-
КонецЕслИ;
12-
ФайлРезультатовТестовПакета = Новый Файл(КаталогРезультатовТестов.ПолноеИмя);
13-
КаталогТестов = Новый Файл(ОбъединитьПути(КаталогПроекта, "tests"));
9+
ПутьКТестам = ОбъединитьПути(ТекущийСценарий().Каталог, "..", "tests");
10+
11+
ФайлПутьКТестам = Новый Файл(ПутьКТестам);
12+
Если Не ФайлПутьКТестам.Существует() Тогда
13+
Сообщить("Не найден каталог тестов " + ПутьКТестам);
14+
Возврат Ложь;
15+
КонецЕсли;
16+
17+
ПутьКОтчетуJUnit = ОбъединитьПути(ТекущийСценарий().Каталог, "..");
18+
19+
РезультатТестирования = Тестер.ТестироватьКаталог(
20+
Новый Файл(ПутьКТестам),
21+
Новый Файл(ПутьКОтчетуJUnit)
22+
);
23+
24+
Успешно = РезультатТестирования = 0;
25+
26+
Возврат Успешно;
27+
КонецФункции // ПрогнатьТесты()
28+
29+
Функция ПрогнатьФичи()
30+
31+
ПутьОтчетаJUnit = "./bdd-log.xml";
32+
33+
КаталогФич = ОбъединитьПути(".", "features");
34+
35+
ИсполнительБДД = Новый ИсполнительБДД;
36+
37+
Файл_КаталогФич = Новый Файл(КаталогФич);
38+
Если Не Файл_КаталогФич.Существует() Тогда
39+
Сообщить("Не найден каталог фич " + КаталогФич);
40+
Возврат Истина;
41+
КонецЕсли;
42+
43+
РезультатыВыполнения = ИсполнительБДД.ВыполнитьФичу(Файл_КаталогФич, Файл_КаталогФич);
44+
ИтоговыйРезультатВыполнения = ИсполнительБДД.ПолучитьИтоговыйСтатусВыполнения(РезультатыВыполнения);
45+
46+
СтатусВыполнения = ИсполнительБДД.ВозможныеСтатусыВыполнения().НеВыполнялся;
47+
Если РезультатыВыполнения.Строки.Количество() > 0 Тогда
48+
49+
СтатусВыполнения = ИсполнительБДД.ПолучитьИтоговыйСтатусВыполнения(РезультатыВыполнения);
50+
51+
КонецЕсли;
52+
53+
ГенераторОтчетаJUnit = Новый ГенераторОтчетаJUnit;
54+
ГенераторОтчетаJUnit.Сформировать(РезультатыВыполнения, СтатусВыполнения, ПутьОтчетаJUnit);
55+
56+
Сообщить(СтрШаблон("Результат прогона фич <%1>
57+
|", ИтоговыйРезультатВыполнения));
58+
59+
Возврат ИтоговыйРезультатВыполнения <> ИсполнительБДД.ВозможныеСтатусыВыполнения().Сломался;
60+
КонецФункции // ПрогнатьФичи()
61+
62+
Попытка
63+
ТестыПрошли = ПрогнатьТесты();
1464

15-
РезультатТестирования = Тестер.ТестироватьКаталог(КаталогТестов, ФайлРезультатовТестовПакета);
65+
Исключение
66+
ТестыПрошли = Ложь;
67+
Сообщить(СтрШаблон("Тесты через 1testrunner выполнены неудачно
68+
|%1", ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())));
69+
КонецПопытки;
1670

17-
КонецПроцедуры
71+
ФичиПрошли = Истина;
72+
// Попытка
73+
// ФичиПрошли = ПрогнатьФичи();
74+
// Исключение
75+
// ФичиПрошли = Ложь;
76+
// Сообщить(СтрШаблон("Тесты поведения через 1bdd выполнены неудачно
77+
// |%1", ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())));
78+
// КонецПопытки;
1879

19-
ПровестиТестирование();
80+
Если Не ТестыПрошли Или Не ФичиПрошли Тогда
81+
Сообщить("Тестирование завершилось неудачно!");
82+
ЗавершитьРаботу(1);
83+
Иначе
84+
Сообщить(СтрШаблон("Результат прогона тестов <%1>
85+
|", ТестыПрошли));
86+
КонецЕсли;

0 commit comments

Comments
 (0)