From a8ed25b5de43d7a572cdba4c6644827029b69222 Mon Sep 17 00:00:00 2001 From: Ivan Smirnov <52702497+ivanmolodec@users.noreply.github.com> Date: Thu, 2 May 2024 22:48:42 +0300 Subject: [PATCH] Bdd step unstable (#3) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Шаг BDD помечается как Unstable в случае ошибок в сценариях --- .../jenkins/library/IStepExecutor.groovy | 2 ++ .../jenkins/library/StepExecutor.groovy | 5 +++++ .../pulsar/jenkins/library/steps/Bdd.groovy | 22 +++++++++++++------ 3 files changed, 22 insertions(+), 7 deletions(-) diff --git a/src/ru/pulsar/jenkins/library/IStepExecutor.groovy b/src/ru/pulsar/jenkins/library/IStepExecutor.groovy index e9f9cb50..d56ddf57 100644 --- a/src/ru/pulsar/jenkins/library/IStepExecutor.groovy +++ b/src/ru/pulsar/jenkins/library/IStepExecutor.groovy @@ -70,6 +70,8 @@ interface IStepExecutor { def unstash(String name) + def unstable(String message) + def zip(String dir, String zipFile) def zip(String dir, String zipFile, String glob) diff --git a/src/ru/pulsar/jenkins/library/StepExecutor.groovy b/src/ru/pulsar/jenkins/library/StepExecutor.groovy index e8ffe04f..fb8c2127 100644 --- a/src/ru/pulsar/jenkins/library/StepExecutor.groovy +++ b/src/ru/pulsar/jenkins/library/StepExecutor.groovy @@ -154,6 +154,11 @@ class StepExecutor implements IStepExecutor { steps.unstash name } + @Override + def unstable(String message) { + steps.unstable message + } + @Override def zip(String dir, String zipFile, String glob = '') { steps.zip dir: dir, zipFile: zipFile, glob: glob, overwrite: true diff --git a/src/ru/pulsar/jenkins/library/steps/Bdd.groovy b/src/ru/pulsar/jenkins/library/steps/Bdd.groovy index 454b4c4c..b68c807b 100644 --- a/src/ru/pulsar/jenkins/library/steps/Bdd.groovy +++ b/src/ru/pulsar/jenkins/library/steps/Bdd.groovy @@ -6,9 +6,11 @@ import ru.pulsar.jenkins.library.ioc.ContextRegistry import ru.pulsar.jenkins.library.utils.Logger import ru.pulsar.jenkins.library.utils.VRunner +import java.lang.reflect.Array + class Bdd implements Serializable { - private final JobConfiguration config; + private final JobConfiguration config Bdd(JobConfiguration config) { this.config = config @@ -29,13 +31,19 @@ class Bdd implements Serializable { steps.installLocalDependencies() steps.createDir('build/out') + List returnStatuses = [] + config.bddOptions.vrunnerSteps.each { + Logger.println("Шаг запуска сценариев командой ${it}") + String vrunnerPath = VRunner.getVRunnerPath() + returnStatuses.add(VRunner.exec("$vrunnerPath ${it} --ibconnection \"/F./build/ib\"", true) as Integer) + } - steps.catchError { - config.bddOptions.vrunnerSteps.each { - Logger.println("Шаг запуска сценариев командой ${it}") - String vrunnerPath = VRunner.getVRunnerPath(); - VRunner.exec("$vrunnerPath ${it} --ibconnection \"/F./build/ib\"") - } + if (Collections.max(returnStatuses) > 2) { + steps.error("Получен неожиданный/неверный результат работы. Возможно, работа 1С:Предприятие завершилась некорректно, или возникла ошибка при запуске") + } else if (returnStatuses.contains(1)) { + steps.unstable("Тестирование сценариев завершилось, но часть фич/сценариев упала") + } else { + Logger.println("Тестирование сценариев завершилось успешно") } }