Skip to content

Commit a56aac8

Browse files
committed
Merge branch 'develop'
2 parents 5aca91c + 48f6fe2 commit a56aac8

File tree

3 files changed

+188
-0
lines changed

3 files changed

+188
-0
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
oscript_modules/
2+
3+
tests\.xml

Jenkinsfile

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

tasks/test.os

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
#Использовать ".."
2+
#Использовать 1bdd
3+
#Использовать 1testrunner
4+
5+
Функция ПрогнатьТесты()
6+
7+
Тестер = Новый Тестер;
8+
9+
ПутьКТестам = ОбъединитьПути(ТекущийСценарий().Каталог, "..", "tests");
10+
11+
Файл_ПутьКТестам = Новый Файл(ПутьКТестам);
12+
Если Не Файл_ПутьКТестам.Существует() Тогда
13+
Возврат Истина;
14+
КонецЕсли;
15+
16+
ПутьКОтчетуJUnit = ОбъединитьПути(ТекущийСценарий().Каталог, "..");
17+
18+
РезультатТестирования = Тестер.ТестироватьКаталог(
19+
Новый Файл(ПутьКТестам),
20+
Новый Файл(ПутьКОтчетуJUnit)
21+
);
22+
23+
Успешно = РезультатТестирования = 0;
24+
25+
Возврат Успешно;
26+
КонецФункции // ПрогнатьТесты()
27+
28+
Функция ПрогнатьФичи()
29+
30+
ПутьОтчетаJUnit = "./bdd-log.xml";
31+
32+
КаталогФич = ОбъединитьПути(ТекущийСценарий().Каталог, ".", "features");
33+
34+
ИсполнительБДД = Новый ИсполнительБДД;
35+
36+
Файл_КаталогФич = Новый Файл(КаталогФич);
37+
Если Не Файл_КаталогФич.Существует() Тогда
38+
Возврат Истина;
39+
КонецЕсли;
40+
41+
РезультатыВыполнения = ИсполнительБДД.ВыполнитьФичу(Файл_КаталогФич, Файл_КаталогФич);
42+
ИтоговыйРезультатВыполнения = ИсполнительБДД.ПолучитьИтоговыйСтатусВыполнения(РезультатыВыполнения);
43+
44+
СтатусВыполнения = ИсполнительБДД.ВозможныеСтатусыВыполнения().НеВыполнялся;
45+
Если РезультатыВыполнения.Строки.Количество() > 0 Тогда
46+
47+
СтатусВыполнения = ИсполнительБДД.ПолучитьИтоговыйСтатусВыполнения(РезультатыВыполнения);
48+
49+
КонецЕсли;
50+
51+
ГенераторОтчетаJUnit = Новый ГенераторОтчетаJUnit;
52+
ГенераторОтчетаJUnit.Сформировать(РезультатыВыполнения, СтатусВыполнения, ПутьОтчетаJUnit);
53+
54+
Сообщить(СтрШаблон("Результат прогона фич <%1>
55+
|", ИтоговыйРезультатВыполнения));
56+
57+
Возврат ИтоговыйРезультатВыполнения <> ИсполнительБДД.ВозможныеСтатусыВыполнения().Сломался;
58+
КонецФункции // ПрогнатьФичи()
59+
60+
Попытка
61+
ТестыПрошли = ПрогнатьТесты();
62+
63+
Исключение
64+
ТестыПрошли = Ложь;
65+
Сообщить(СтрШаблон("Тесты через 1testrunner выполнены неудачно
66+
|%1", ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())));
67+
КонецПопытки;
68+
69+
Попытка
70+
ФичиПрошли = ПрогнатьФичи();
71+
Исключение
72+
ФичиПрошли = Ложь;
73+
Сообщить(СтрШаблон("Тесты поведения через 1bdd выполнены неудачно
74+
|%1", ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())));
75+
КонецПопытки;
76+
77+
Если Не ТестыПрошли Или Не ФичиПрошли Тогда
78+
ВызватьИсключение "Тестирование завершилось неудачно!";
79+
Иначе
80+
Сообщить(СтрШаблон("Результат прогона тестов <%1>
81+
|", ТестыПрошли));
82+
КонецЕсли;
83+
84+
// Если РезультатТестирования <> 0 Тогда
85+
// ВызватьИсключение РезультатТестирования;
86+
// КонецЕсли;
87+
88+
// Если ИтоговыйРезультатВыполнения = ИсполнительБДД.ВозможныеСтатусыВыполнения().Сломался Тогда
89+
90+
// ВызватьИсключение 1;
91+
92+
// КонецЕсли;

0 commit comments

Comments
 (0)