Skip to content

Commit

Permalink
Merge branch 'release/1.1.0'
Browse files Browse the repository at this point in the history
  • Loading branch information
artbear committed Jan 25, 2018
2 parents 4593d72 + 050b078 commit 12a6323
Show file tree
Hide file tree
Showing 5 changed files with 246 additions and 14 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
test-reports/*
*.ospx
tests.xml
106 changes: 106 additions & 0 deletions Jenkinsfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
pipeline {
agent none
options {
buildDiscarder(logRotator(numToKeepStr: '7'))
skipDefaultCheckout()
}

stages {
stage('Тестирование кода пакета WIN') {

agent { label 'windows' }

steps {
checkout scm

script {
bat 'chcp 65001 > nul && opm install -l'

if( fileExists ('tasks/test.os') ){
try {
cmd("oscript tasks/test.os")
junit 'tests.xml'
} catch (Exception err) {
junit 'tests.xml'
//throw err;
}
}
else
echo 'no testing task'
}

}

}

stage('Тестирование кода пакета LINUX') {

agent { label 'master' }

steps {
echo 'under development'
}

}

stage('Сборка пакета') {

agent { label 'windows' }

steps {
checkout scm

bat 'erase /Q *.ospx'
bat 'chcp 65001 > nul && call opm build .'

stash includes: '*.ospx', name: 'package'
archiveArtifacts '*.ospx'
}

}

stage('Публикация в хабе') {
when {
branch 'master'
}
agent { label 'master' }
steps {
sh 'rm -f *.ospx'
unstash 'package'

sh '''
artifact=`ls -1 *.ospx`
basename=`echo $artifact | sed -r 's/(.+)-.*(.ospx)/\\1/'`
cp $artifact $basename.ospx
sudo rsync -rv *.ospx /var/www/hub.oscript.io/download/$basename/
'''.stripIndent()
}
}

stage('Публикация в нестабильном хабе') {
when {
branch 'develop'
}
agent { label 'master' }
steps {
sh 'rm -f *.ospx'
unstash 'package'

sh '''
artifact=`ls -1 *.ospx`
basename=`echo $artifact | sed -r 's/(.+)-.*(.ospx)/\\1/'`
cp $artifact $basename.ospx
sudo rsync -rv *.ospx /var/www/hub.oscript.io/dev-channel/$basename/
'''.stripIndent()
}
}
}
}

def cmd(command) {
if (isUnix()) {
sh "${command}"
} else {
bat "chcp 65001\n${command}"
}
}
6 changes: 3 additions & 3 deletions packagedef
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@

Описание.Имя("v8runner")
.Версия("1.0.1")
.Версия("1.1.0")
.ВерсияСреды("1.0.17")
.ЗависитОт("asserts", "0.4.0")
.ЗависитОт("fs", "0.5.0")
.ЗависитОт("logos", "0.6.2")
.ЗависитОт("logos", "1.0.2")
.ЗависитОт("tempfiles", "0.2.2")
.ЗависитОт("strings", "0.4.1")
.ЗависитОт("1commands", "1.3.1")
.ЗависитОт("1commands", "1.3.2")
.ВключитьФайл("src")
.ВключитьФайл("tests")
.ВключитьФайл("lib.config")
58 changes: 58 additions & 0 deletions src/v8runner.os
Original file line number Diff line number Diff line change
Expand Up @@ -775,6 +775,12 @@

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

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

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

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

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

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

ПараметрыЗапуска.Добавить("/UpdateCfg " + ПутьФайлаКонфигурации);

Если ЗначениеЗаполнено(ПутьФайлаНастроек) Тогда
ПараметрыЗапуска.Добавить("-Settings " + ОбернутьВКавычки(ПутьФайлаНастроек));
КонецЕсли;

Если ВключитьВОбъединениеОбъектыПоНеразрешеннымСсылкам = Истина Тогда
ПараметрыЗапуска.Добавить("-IncludeObjectsByUnresolvedRefs");
ИначеЕсли ВключитьВОбъединениеОбъектыПоНеразрешеннымСсылкам = Ложь Тогда
ПараметрыЗапуска.Добавить("-ClearUnresolvedRefs");
КонецЕсли;

Если Принудительно Тогда
ПараметрыЗапуска.Добавить("-force");
КонецЕсли;
Если ВывестиДваждыИзмененныеОбъекты Тогда
ПараметрыЗапуска.Добавить("-DumpListOfTwiceChangedProperties");
КонецЕсли;

ВыполнитьКоманду(ПараметрыЗапуска);

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

Процедура СнятьКонфигурациюСПоддержки(Знач Принудительно = Ложь) Экспорт

Параметры = СтандартныеПараметрыЗапускаКонфигуратора();
Expand Down
89 changes: 78 additions & 11 deletions tasks/test.os
Original file line number Diff line number Diff line change
@@ -1,19 +1,86 @@
#Использовать ".."
#Использовать 1bdd
#Использовать 1testrunner

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

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

КаталогПроекта = ОбъединитьПути(ТекущийСценарий().Каталог, "..");
КаталогРезультатовТестов = Новый Файл(ОбъединитьПути(КаталогПроекта,"test-reports"));
Если Не КаталогРезультатовТестов.Существует() Тогда
СоздатьКаталог(КаталогРезультатовТестов.ПолноеИмя);
КонецЕслИ;
ФайлРезультатовТестовПакета = Новый Файл(КаталогРезультатовТестов.ПолноеИмя);
КаталогТестов = Новый Файл(ОбъединитьПути(КаталогПроекта, "tests"));
ПутьКТестам = ОбъединитьПути(ТекущийСценарий().Каталог, "..", "tests");

ФайлПутьКТестам = Новый Файл(ПутьКТестам);
Если Не ФайлПутьКТестам.Существует() Тогда
Сообщить("Не найден каталог тестов " + ПутьКТестам);
Возврат Ложь;
КонецЕсли;

ПутьКОтчетуJUnit = ОбъединитьПути(ТекущийСценарий().Каталог, "..");

РезультатТестирования = Тестер.ТестироватьКаталог(
Новый Файл(ПутьКТестам),
Новый Файл(ПутьКОтчетуJUnit)
);

Успешно = РезультатТестирования = 0;

Возврат Успешно;
КонецФункции // ПрогнатьТесты()

Функция ПрогнатьФичи()

ПутьОтчетаJUnit = "./bdd-log.xml";

КаталогФич = ОбъединитьПути(".", "features");

ИсполнительБДД = Новый ИсполнительБДД;

Файл_КаталогФич = Новый Файл(КаталогФич);
Если Не Файл_КаталогФич.Существует() Тогда
Сообщить("Не найден каталог фич " + КаталогФич);
Возврат Истина;
КонецЕсли;

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

СтатусВыполнения = ИсполнительБДД.ВозможныеСтатусыВыполнения().НеВыполнялся;
Если РезультатыВыполнения.Строки.Количество() > 0 Тогда

СтатусВыполнения = ИсполнительБДД.ПолучитьИтоговыйСтатусВыполнения(РезультатыВыполнения);

КонецЕсли;

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

Сообщить(СтрШаблон("Результат прогона фич <%1>
|", ИтоговыйРезультатВыполнения));

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

Попытка
ТестыПрошли = ПрогнатьТесты();

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

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

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

0 comments on commit 12a6323

Please sign in to comment.